[英]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.