/ / Elastic Search: Mehrere Abfragen und Boosting - Elasticsearch

Elastic Search: Mehrere Abfragen und Boosting - elasticsearch

Ich möchte eine Suche durchführen, die viele Suchen enthältmit verschiedenen Boosts und die Ergebnisse werden nach Punktzahl zurückgegeben. Ich habe versucht, eine Suche wie folgt durchzuführen, und ich dachte, dass sie sehr gut funktionierte, bis ich merkte, dass nur die erste Abfrage ausgeführt wurde.

Wie sollte ich das umformulieren, damit alle Abfragen ausgeführt werden und die Ergebnisse nach Punktzahl sortiert sind, wobei die Punktzahlen addiert werden, wenn ein Ergebnis für mehrere Abfragen erscheint?

[{
"query": {
"fuzzy": {
"title": {
"value": "lord",
"boost": 20,
"min_similarity": 0.8
}
}
}
}, {
"query": {
"fuzzy": {
"location": {
"value": "london",
"boost": 1000,
"min_similarity": 0.8
}
}
}
}, {
"query": {
"fuzzy": {
"haircolour": {
"value": "dark",
"boost": 500,
"min_similarity": 0.8
}
}
}
}, {
"query": {
"fuzzy": {
"description": {
"value": "senior",
"boost": 100,
"min_similarity": 0.7
}
}
}
}, {
"query": {
"fuzzy": {
"description": {
"value": "manager",
"boost": 100,
"min_similarity": 0.7
}
}
}
}]

Prost

Nik

Antworten:

-1 für die Antwort № 1

Warum erstellen Sie nicht für jede Abfrage eine Bool-Abfrage mit Ihrer Hauptabfrage als Muss-Klausel und andere Abfragen wie Sie sollten?

Hilft es?