Wie wäre bei Lucene die empfohlene Vorgehensweise zum Auffinden von Übereinstimmungen in Suchergebnissen?Ermitteln der Position von Suchtreffern aus Lucene
Genauer gesagt, nehmen Sie an, dass Indexdokumente ein Feld "fullText" haben, das den Klartextinhalt eines Dokuments speichert. Nehmen Sie weiterhin an, dass für einen dieser Dokumente der Inhalt "Der schnelle braune Fuchs springt über den faulen Hund" ist. Als nächstes wird nach "fox dog" gesucht. Offensichtlich wäre das Dokument ein Hit.
In diesem Szenario kann Lucene verwendet werden, um so etwas wie die passenden Regionen für das gefundene Dokument bereitzustellen? Also, für dieses Szenario würde Ich mag so etwas wie produzieren:
[{match: "fox", startIndex: 10, length: 3},
{match: "dog", startIndex: 34, length: 3}]
Ich vermute, dass es durch umgesetzt werden könnte, was in dem org.apache.lucene.search.highlight Paket zur Verfügung gestellt wird. Ich bin mir nicht sicher über den Gesamtansatz obwohl ...
Der Kommentar "dieser Teil funktioniert nur, wenn ein Begriff in thr Query-String ist". Meine nächste Frage war: Wie finde ich heraus, welche Begriffe mit der Abfrage übereinstimmen (wenn es sich um eine komplexe Abfrage handelt (zB mit Platzhaltern). Diese Antwort füllt diese Lücke gut aus: http://stackoverflow.com/questions/7896183/get-matched- Terms-from-Lucene-Abfrage – geert3