2017-04-10 20 views
0

我正在執行以下查詢,並期望它能夠獲取包含關鍵字「images」的所有包含類別1857或1859的文檔。但結果數量遠遠高於預期的結果數量。這個查詢做了什麼,如果不是我認爲它的作用?這個彈出式查詢查詢有什麼作用?

{ 
"query": { 
"bool": { 
    "must": [ 
    { 
     "terms": { 
     "category_id": [1857, 1859] 
     } 
    }, 
    { 
     "match": { 
     "_all": { 
      "query": "images" 
     } 
     } 
    } 
    ] 
} 
} 
} 
+0

你能提供的文檔的例子這不應該匹配,但會顯示爲搜索結果? – Random

+0

不幸的是,我沒有完全訪問結果集。 – Michael

回答

0

它像你描述的應該工作:它返回文檔其中category_id有條款1857年或1859年和至少1場images項。換句話說,它匹配下列表達式:(category_id in (1857, 1859)) and _all = 'images'

由於不能提供正確匹配的文檔的一個例子,嘗試與explain查詢參數運行查詢或將其作爲一個字段添加到身體像這樣

{ 
    "explain": true, 
    "query": { 
     "bool": { 
      "must": [ 
       { 
        "terms": { 
         "category_id": [ 
          1857, 
          1859 
         ] 
        } 
       }, 
       { 
        "match": { 
         "_all": { 
          "query": "images" 
         } 
        } 
       } 
      ] 
     } 
    } 
} 
+0

謝謝。但是,這個查詢做了什麼?是否獲取所有「圖像」出現在任何術語*和* 1857出現在category_id *或* 1859中的文檔? – Michael

+0

更新了我的答案 – Random