2009-08-27 7 views
8

On m'a suggéré d'utiliser Field.Set OmitNorms (true); lors de la création des documents pour lucenesearch pour trier le résultat en fonction du nombre de hits, mais je ne suis pas clair de ce qu'il fait et c'est sûr. Le tri du résultat en fonction du nombre de résultats signifie que le document dans lequel le texte de recherche est trouvé le nombre maximal de fois doit apparaître en haut, suivi de ceux qui ont moins de correspondance pour le texte de recherche. Je sais que c'est idiot, mais je veux savoir avant de mettre en œuvre ce s'il vous plaît aider.Quelle est l'utilisation de Field.Set OmitNorms (true); dans lucene

Répondre

10

Check out this article for a good paragraph description de ce que fait omettre les normes en termes d'optimisation. Fondamentalement, son genre d'avoir un mini-index lucene pour les termes à l'intérieur d'un champ, donc c'est vraiment seulement utile pour les champs qui auraient beaucoup de texte à l'intérieur d'eux.

+4

Le document a été déplacé mais peut être consulté dans l'archive Internet http://web.archive.org/web/20101111232408/http://www.lucidimagination.com/Community/Hear-from-the-experts/Articles/Scaling-Lucene-et-Solr –

5

Par défaut, un champ est indexé avec norm, un produit de l'amélioration du document, de l'amplification du champ et du facteur de normalisation du champ (voir Similarity scoring). Cela ajoute un octet à la consommation de stockage et de mémoire de chaque champ, ce qui peut être ignoré pour les champs ou les types de champs sélectionnés en utilisant omitNorms.

Les augmentations sont spécifiées lors de l'indexation, tandis que lengthNorm est calculée de sorte que si deux documents correspondent à un terme de requête f fois, le document le plus long obtient un score inférieur. Par conséquent, si vous souhaitez que vos documents soient évalués en fonction du nombre exact de termes correspondants, plutôt que du nombre de termes en fonction de la longueur du document, utilisez omitNorms (et bénéficiez gratuitement des avantages de la consommation de mémoire).