Frage

Ich habe mit dem (Java) Highlighter für Lucene (in dem Sandbox-Paket) für einige Zeit. Dies ist jedoch nicht wirklich sehr genau ist, wenn es darum geht, die richtigen Begriffe in den Suchergebnissen für: -. Es funktioniert gut für einfache Abfragen, zum Beispiel für zwei getrennte Worte gesucht wird beiden Codefragmente in den Ergebnissen hervorheben

Es ist jedoch nicht gut handeln mit komplizierteren Abfragen. Im einfachstenen Fall, Satz Anfragen wie „Stack-Überlauf“ werden alle Vorkommen von Stapeln oder Überlauf in der Markierung übereinstimmt, die den Eindruck für den Benutzer gibt, dass es nicht sehr gut funktioniert.

Ich habe versucht, das Update der Anwendung hier aber das kam mit viel Leistung Einsprüche, und am Ende des Tages war einfach nur unbrauchbar. Die Leistung ist vor allem ein Problem auf Wildcard-Abfragen. Dies ist auf die Art und Weise, dass die Markierung funktioniert; statt nur die Arbeit am Abfragezeichenfolgeflag und den Text, um ihn als Lucene analysiert würde und sucht dann nach allen Spielen, dass Lucene gemacht hat; leider bedeutet dies, dass für bestimmte Platzhalter-Abfragen kann es nach Übereinstimmungen mit 2000+ Klauseln über große Dokumente zu suchen, und es ist einfach nicht schnell genug.

Gibt es eine schnellere Implementierung einer genauen Textmarker?

War es hilfreich?

Lösung

Es gibt einen neuen, schnelleren Textmarker (muss in gepatcht werden, sondern wird Teil des Release 2.9 sein)

https://issues.apache.org/jira/browse/LUCENE-1522

und zurück Verweis auf diese Frage

Andere Tipps

Sie könnten Solr Blick in Verwendung. http://lucene.apache.org/solr

Solr ist eine Art von generischen Suchanwendung, die Lucene verwendet und unterstützt Hervorhebung. Es ist möglich, dass die Markierung in Solr als API außerhalb von Solr verwendbar ist. Sie könnten auch an, wie Solr macht es für Inspiration.

Ich habe zu diesem Thema zu lesen und über kam spanQuery die Ihnen die Spanne des angepassten Begriff oder Begriffe in das Feld zurückkehren würde, die angepasst.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top