TermQuery.ExtractTerms
extrahiert die Begriffe in der Abfrage, nicht das Ergebnis. Bei einer Suche nach "foo: bar" wird also immer genau ein Begriff zurückgegeben, unabhängig davon, was im Index steht.
Es klingt für mich, wie Sie über highlighting, nicht Query.ExtractTerms
wissen möchten.
EDIT: Basierend auf Ihren Kommentar, es klingt wie Sie fragen: „Wie Scoring von Begriffsvektoren betroffen ist?“ Die Antwort darauf ist: überhaupt nicht. Der Begriff Häufigkeit, Norm usw. wird zur Indexzeit berechnet. Es spielt also keine Rolle, was Sie speichern.
Die wichtigste Ausnahme ist PhraseQuery
mit slop, die den Begriff Positionen verwendet. Eine kleine Ausnahme ist, dass benutzerdefinierte Scoring-Klassen alle gewünschten Daten verwenden können, so dass nicht nur Term-Vektoren, sondern auch Payloads usw. den Score beeinflussen können.
Wenn Sie nur TermQuery
s tun, sollte das, was Sie speichern, keinen Effekt haben.
Thx Xodarap. Ich möchte jedoch keine Hervorhebung. Vielen Dank. Ich frage mich hauptsächlich über die Scoring-Effekte, nicht Performance oder Hervorhebung, über Termvektoren auf vs off. Ich kann die Referenzen für das Scoring nicht basierend auf der Position finden; was in der Literatur allgemein als "1. Auftreten" bezeichnet wird; Dies würde erfordern, dass der Inv-Index Positionsinformationen hat. Wie würde Nähe suchen. – willemIP
@willemIP: Ich habe meine Antwort aktualisiert, um zu reflektieren, was ich denke, dass Sie fragen. – Xodarap
@Xodorap: Also gibt es standardmäßig kein 1. Vorkommen? Und da ist auch keine Nähe? Ok, aber es wirkt sich aus. Ich habe einen reproduzierbaren Fall. Jetzt muss ich entscheiden, ob dies eine Indexzeitänderung oder eine Abfragezeit ist; Sowohl die Indizierung als auch die Abfrage beeinflussen das Scoring. Welche bewirkt die radikale Veränderung meiner Relevanzzahlen aus dem einfachen Einschluss/Ausschluss von Termvektoren auf den Suchfeldern? – willemIP