Die folgende Abfrage liefert Ergebnisse:Feinabstimmung von Match_all-Abfragen?
GET /sentinel/pingback/_search
{
"match_all": {}
}
Ich wollte die query
zur Feinabstimmung eines Zeitbereich
GET /sentinel/pingback/_search
{
"query": {
"range": {
"time": {
"gte": "now-20m"
}
},
"match_all": {}
}
}
Dies funktioniert nicht mehr, ist der Fehler
"error": {
"root_cause": [
{
"type": "parse_exception",
"reason": "failed to parse search source. expected field name but got [START_OBJECT]"
}
],
(...)
Der Zeitbereich funktioniert jedoch korrekt, wenn er
012 istIch habe daher erwartet, dass für eine query
ich unabhängige "Feinabstimmung" -Komponenten hinzufügen könnte (wie range
zum Beispiel), aber anscheinend funktioniert es nicht so.
Wie diese Abfrage Einschränkungen zu kombinieren?
Hinweis: Ich weiß, dass ich match_all
in der Abfrage oben loswerden kann. Ich will es halten, weil es entweder ein match_all
oder ein match
sein wird (was eine weitere Einschränkung ist, ich wünschte, um hinzuzufügen, die allumfassende query
Der Körper des Abfrage wird programmatisch erstellt. In einem Fall werde ich alles anpassen wollen (mit '" match_all ": {}') und in anderen Fällen muss ich einen genauen Wert eines Feldes (obwohl 'match') übereinstimmen. Da ich keine Platzhalter für Übereinstimmungen gefunden habe (um zu sagen, dass das Feld 'name' zum Beispiel alles sein kann), muss ich (?)' 'Match_all 'verwenden: {}' Es ist wahr, dass es mir schwer fällt, das zu verstehen Logik der Suchkörper in ES) – WoJ
Siehe meine Bearbeitung. Es ist auch nur eine Sache, wenn es sinnvoll ist, zu kombinieren, wenn Sie nach einem bestimmten Wert suchen und anschließend die verbleibenden nicht übereinstimmenden Dokumente im Ergebnis anhängen möchten. Dort können Sie beispielsweise eine Punktzahl für die übereinstimmenden Dokumente von 3 setzen, und die übrigen im Spiel erhalten alle eine 1. Ergebnis 3 ist höher als 1, also kommen sie zuerst. – Nilz11
Danke. Dank deinem Kommentar zu 'bool' habe ich die Lösung ausgearbeitet und als Antwort gepostet. Danke für den Kopf! – WoJ