我试图查询elasticsearch 5.2 rest端点:
{
"query": {
"bool": {
"should": [
{"match": { "file-source": "css" }},
{"match": { "file-source": "js" }}
],
"minimum_number_should_match": 2
}
}
}
但是,这会在ElasticSearch中返回NO HITS,我不明白为什么这不起作用,而ElasticSearch文档的例子非常少。
我试图匹配两者。但它可能是OR。
有文件来源:" css",文件来源:" js",文件来源:" json"
但我想选择BOTH 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);
答案 0 :(得分:1)
让我们解释给定的查询。
This will calculate shipping, handling and taxes on your purchase
Enter your subtotal please: 300
This is a valid amount
There is no handling fee
Product Total Information
Subtotal: $300.0
Shipping: $30.0
Handling: $0
Sales tax: $18.0
Grand total: $348.0
这将返回所有文件源为css或js的文档。
"should": [
{"match": { "file-source": "css" }},
{"match": { "file-source": "js" }}
]
这将缩小结果范围并将A限制为同时具有css和js的文档。记住“css OR js”也包含“css和js”。但在这种情况下,似乎每个文档都有唯一的文件源,所以A将成为一个空集,因为没有“css和js”。
在这种情况下,B变为空,因为没有文件具有file-source = css和jss
尝试删除 - 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>
。它应该工作。