2017-05-12 3 views
0

meine Codierung wie folgt:Bedeutung Most und Operator Kombination

{ 
"query": { 
    "bool": { 
    "must": [ 
     { 
      "multi_match": { 
       "query": [ 
       "5347" 
       ], 
       "fields": [ 
       "stkno", 
       "tag", 
       "content", 
       "htext" 
       ], 
       "operator": "or" 
      } 
     } 
    ] 
    } 
}, 
"size": 500, 
"sort": [ 
    { 
    "CDate": { 
     "order": "desc" 
     } 
    } 
    ] 
} 

was das heißt, wenn Most und Betreiber zusammen kombinieren? Elasticsearch wird mit Bedingung ausgeführt, wenn must und operator verwendet wird oder?

Dank

Antwort

3

Must ist wie And zwischen mehreren Abfragen. Nehmen Sie zum Beispiel:

"query": { 
    "bool": { 
     "must": [ 
      { // Query 1}, 
      { // Query 2} 
     ] 
    } 
    } 

Above Abfrage wird zurückgehen, wenn beide Query1UNDQuery2 Rückkehr Ergebnisse. Studie über musthere

Während operatorOR in obiger Abfrage gilt für multi_match Abfrage.

Nehmen Sie zum Beispiel:

"multi_match": { 
       "query": [ 
       "text1 text2" 
       ], 
       "fields": [ 
       "field1", 
       "field2" 
       ], 
       "operator": "or"    
      } 

Hier OR Betreiber arbeiten zwischen text1 und text2 in multimatch Abfrage erwähnt. Das heißt, wenn eines der Felder field1 oder field2text1ORtext2 enthält, wird das Dokument zurückgegeben. Studie über operatorhere

Nun, wenn wir Ihr Beispiel oben betrachten. Da Sie nur eine Abfrage in must Klausel haben, können Sie UND Verhalten nicht sehen.

Und Sie haben nur Text in multimatch Abfrage, die „5347“ ist, werden Sie nicht in der Lage sein OR Verhalten von Multimatch Abfrage

Hope this verdeutlicht Ihre Zweifel zu sehen.

+0

Wie wäre es, wenn Text 1 und Test 2 "4448.KL" und "6599.KL" und Operation ist "And" und Multimatch auch, kann es nur finden "6599.KL", dann 4448.KL kann; t Finden, auch wegen Multimatch? –

+0

Hat dich nicht erwischt. Können Sie die Abfrage angeben, die Sie ausführen? – Richa

+0

POST-Nachrichten/bursa/_search { "Abfrage": {"bool": {"muss": [{"match": {"Kategorie": "36"}}], "muss": [{"multi_match ": {" query ": [" 4448.KL "," 6599.KL "]," fields ": [" stkno "," tag "," content "," htext "]," operator ":" und " }}], "muss": [{"range": {"CDate": {"gt": "2010-01-01", "lte": "2017-05-30T23: 59: 59"}}} ]}}, "size": 1000, "sort": [{"CDate": {"order": "desc"}}]} –