Ich möchte eine Anwendung erstellen, bei der eine Übereinstimmung erfordert, dass jedes Token im Dokument mindestens einmal in der Abfrage enthalten ist !!!Elasticsearch - Überprüfen, ob das Dokument in der Abfrage mit Synonymen enthalten ist
Bitte beachten Sie, dass es umgekehrt ist als die Standard Erwartung. Dokumente sind jetzt ziemlich klein, während Abfragen sehr lang sein können. Beispiel:
Dokument:
"elastic super cool".
Eine gültige Abfrage Spiel
wäre"I like elastic things since elasticsearch is super cool"
ich es geschafft, die Anzahl der gefundenen Token von Elasticsearch zu bekommen (siehe auch https://groups.google.com/forum/?fromgroups=#!topic/elasticsearch/ttJTE52hXf8). Also im obigen Beispiel 3 Treffer (= Länge des Dokuments) würde bedeuten, dass die Abfrage übereinstimmt.
Aber wie kann ich das mit Synonymen kombinieren ???
Angenommen, ein Synonym für "cool" wäre "nett", "groß" und "gut". Durch Verwendung eines Synonym-Token-Filters konnte ich die Synonome zu jeder Position im Dokument hinzufügen.
Daher werden die folgenden vier Dokumente jeweils 3 Token oben für die Abfrage entspricht:
"elastic super nice"
"elastic nice cool"
"nice good great"
"good great cool"
Aber nur das erste Spiel ist ein gültiges Spiel!
Wie kann ich vermeiden, dass jede Synonymübereinstimmung als eine Übereinstimmung zählt, obwohl sie das gleiche Token im Dokument darstellen?
Irgendwelche Ideen, wie man dieses Problem anpackt?
ich gelesen, dass Perkolatoren dieses Problem beheben könnte, aber ich bin immer noch nicht sicher, ob perculators mit Synonymen, wie ich es möchte arbeiten würde ...
Ideen?
Konnten Sie dieses Problem lösen? Haben Sie Percolator mit Synonymfilter probiert? – vaidik