2010-08-12 7 views
1

J'ai des fichiers Lucene indexés selon pageIds (UniqueKey). et un document peut avoir plusieurs pages. Maintenant, une fois que l'utilisateur effectue une recherche, il nous donne des pages qui correspondent aux critères de recherche.Comment Grouper peut-il être réalisé dans Solrnet/Solr (Lucene)?

J'utilise Lucene.Net 2.9.2

Nous avons 2 problèmes ...

1- La taille du fichier est d'environ 800 Go et il a 130 millions de lignes (pages) de sorte que le temps de recherche était très lent (toutes les requêtes prennent plus d'un min (nous n'avons qu'à retourner des lignes limitées à la fois)

Pour résoudre le problème de performance, je suis passé à SOLR qui a résolu le problème de performance (ce qui est assez étrange car je n'utilise pas toutes les fonctionnalités supplémentaires fournies par SOLR comme sharding etc - donc peut-il être que Lucene.NET 2.9.2 n'est pas vraiment équivalent à compa de performance rouge à la même version de JAVA ??) mais maintenant j'ai un autre problème ...

2- Le 'document lucene' individuel est une page mais je veux montrer les résultats 'groupés par' 'documents réels'. Combien de résultats je devrais être retourné devrait être configurable basé sur de «vrais documents» pas de «pages» (coz c'est comment je veux montrer à l'utilisateur). Donc disons que je veux 20 'documents réels' et toutes les pages qui correspondent aux critères de recherche (peu importe si un document a 100 pages et un autre seulement 1). D'après ce que j'ai pu obtenir des forums SOLR, c'est qu'il peut être réalisé avec un patch SOLR-236 (effondrement de champs) mais je n'ai pas été capable d'appliquer le correctif correctement avec le tronc (donne beaucoup d'erreurs).

Ceci est vraiment imp pour moi et je n'ai pas beaucoup de temps, alors quelqu'un peut-il s'il vous plaît soit m'envoyer le binaire SOLR 1.4.1 avec ce patch appliqué ou me guider s'il n'y a pas d'autre moyen.

Je l'apprécierais vraiment. Merci!!

Répondre

0

Si vous rencontrez des problèmes avec le correctif de réduction, le suiveur de problèmes Solr est le canal à signaler. Je peux voir que other people are currently having some issues with it, donc je suggère de s'impliquer dans son développement. Cela dit: Je recommande que si votre application a besoin de rechercher des «documents réels», alors construisez votre index autour de ces «documents réels», pas leurs pages individuelles.

+0

@ Mauricio Scheffer: en fait, il est nécessaire que nous affichions les numéros de pages correspondant à cette requête. –

0

Si votre seule exigence est d'afficher les numéros de page, je suggère de jouer avec le surligneur ou fait un développement personnalisé. Vous pouvez stocker le numéro de mot du début et de la fin de chaque page dans une structure personnalisée, et connaître la position du mot correspondant dans le document entier, vous pouvez savoir dans quelle page il apparaît. Si les documents sont très volumineux, vous obtiendrez une bonne amélioration des performances.

Questions connexes