2010-09-24 11 views
3

J'ai lu la nouvelle édition de la Lucene in Action et ils donnent un exemple de faire la mise en évidence, mais malheureusement, il faut Le texte original permet donc d'obtenir la position des termes etc. Le surligneur est l'officiel dans contrib, ce qui implique son surligneur officiel ou sponsorisé.Y at-il un surligneur Lucene qui ne nécessite pas le texte original - mais peut travailler sur des positions à terme, etc

Est-ce que quelqu'un sait d'un autre surligneur qui ne nécessite pas le texte original, mais qui fonctionne en utilisant les positions à long terme (désolé si j'ai eu la mauvaise terminologie) ???

+0

Je ne comprends pas vraiment votre question - que mettriez-vous en évidence, sinon le texte? – Xodarap

+0

Certains surligneurs ont besoin du texte original, puis analysent la requête et passent en surbrillance. Ce que je voulais dire, c'est que le surligneur construirait le fragment de texte de l'index sans avoir accès au texte original. –

Répondre

0

Le surligneur standard et FastVectorHighlighter peuvent tous deux utiliser l'index si vous stockez les termes. (FVH peut seulement utiliser l'index, en fait). Vous pouvez voir un exemple à la page 274 de Lucene in Action. La ligne de code correspondant est:

TokenStream stream = TokenSources.getAnyTokenStream(searcher.getIndexReader(), sd.doc, "title", doc, analyzer); 

qui va obtenir le flux symbolique de l'indice.

+0

Penser un peu plus, je pense que mon q d'origine est défectueux parce que tous les termes ne sont pas stockés (par exemple mots d'arrêt), donc il n'est pas possible de construire un fragment original précis à des fins de mise en évidence. Est-ce une supposition correcte ? –

+0

Si vous analysez votre texte d'une manière qui supprime les mots d'arrêt, alors oui, les mots d'arrêt seront supprimés. Ce que je fais est d'avoir deux champs de copie, un qui est indexé mais pas stocké, l'autre stocké mais pas indexé. Celui qui est indexé est borné, etc. Le stocké utilise simplement un tokenizer d'espace. Cela prend en fait la même quantité d'espace qu'un champ indexé + stocké, et résoudra le problème que vous avez décrit à propos des mots d'arrêt qui sont supprimés. – Xodarap

+1

ce qui revient à stocker le texte original en pleine forme avec le formulaire analysé - merci pour les conseils ... –