Ist es möglich, eine Abfrage wie dieseMinimum sollte
"query": {
"filtered": {
"filter": {
"terms": {
"names": [
"Anna",
"Mark",
"Joe"
],
"execution" : "and"
}
}
}
}
Mit der "minimum_should_match": "2"
Aussage haben?
Ich weiß, dass ich eine einfache Abfrage verwenden kann (ich habe es versucht, es funktioniert), aber ich brauche den Score nicht berechnet werden. Mein Ziel ist nur Dokumente zu filtern, die 2 der Werte enthalten.
Beeinträchtigt das Ergebnis die Zeit, die zum Abrufen des Dokuments benötigt wird, in der Regel sehr stark?
Mit dieser Abfrage:
"query": {
"filtered": {
"filter": {
"terms": {
"names": [
"Anna",
"Mark",
"Joe"
],
"execution" : "and",
"minimum_should_match": "2"
}
}
}
}
habe ich diesen Fehler:
QueryParsingException[[my_db] [terms] filter does not support [minimum_should_match]]
Wenn ich Ihre Frage verstehe, suchen Sie alle Dokumente mit 'Anna',' Mark' und 'Joe' im Namensfeld, geben oder nehmen 10% Ähnlichkeit? Was passiert, wenn wir längere Namen wie "Catherine" und "Wilhelmina" haben, die genau übereinstimmen, und der Nachname "Joe" wegen der 10% komplett verworfen wird? – IanGabes
Sorry vielleicht meine Frage war nicht so klar :) Ich habe 90% verwendet, um eine Teilmenge der Liste anzugeben. Ich bearbeite mit 2. Das heißt, ein Dokument mit Anna, Mark und Catherine muss übereinstimmen. Ein Dokument mit Anna, Catherine und Wilhelimina darf nicht übereinstimmen. Das Hauptproblem ist, dass, wenn ich das Minimum verwenden sollte innerhalb einer gefilterten Abfrage übereinstimmen habe ich 'QueryParsingException [[my_db] [Begriffe] Filter unterstützt nicht [minimum_should_match]];' – betto86