[英]Minimum Number Should Match, Should match with POST
我正在嘗試查詢elasticsearch 5.2 rest終結點:
{
"query": {
"bool": {
"should": [
{"match": { "file-source": "css" }},
{"match": { "file-source": "js" }}
],
"minimum_number_should_match": 2
}
}
}
但是,這在ElasticSearch中沒有返回任何結果,我不明白為什么這不起作用,並且ElasticSearch文檔中只有很少的示例。
我正在嘗試兩者都匹配。 但這可能是OR。
有文件源:“ css”,文件源:“ js”,文件源:“ json”
但是我想同時選擇CSS和JS ...
這是使用Java API測試相同代碼時的一些示例Java代碼:
// conditions met from the form
query.should(QueryBuilders.matchQuery("file-source", "css"));
query.should(QueryBuilders.matchQuery("file-source", "js"));
query.minimumNumberShouldMatch(2);
讓我們解釋給定的查詢。
"should": [
{"match": { "file-source": "css" }},
{"match": { "file-source": "js" }}
]
這將返回所有文件源為css或js的文檔。
A = <documents with file-source = css or jss>
"minimum_number_should_match": 2
B = A <documents with file-source at least 2 of css, jss>
這將縮小結果范圍,並將A限制為同時具有css和js的文檔。 請記住,“ css OR js”也包含“ css和js”。 但是在您的情況下,似乎每個文檔都具有唯一的文件源,因此A將成為空集,因為沒有“ css和js”。
在這種情況下,由於沒有文檔具有file-source = css和jss,因此B變為空
嘗試刪除- "minimum_number_should_match": 2
。 它應該工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.