繁体   English   中英

最小数量应匹配,应与POST匹配

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM