Elasticseatch:在具有多个具有相同名称的字段的文档中,限制单个字段的条件

时间:2018-08-23 16:46:18

标签: elasticsearch full-text-search

我有一个结构如下的文件:

{
    "sentanceList": [
        {
            "wordList": [
                {"word": "aacc"},
                {"word": "a"},
                {"word": "b"},
            ]
        },
        {
            "wordList": [
                {"word": "v"},
                {"word": "bb"},
                {"word": "bks"}
            ]
        }
    ]
}        

仅当一个单词满足以下查询中的所有条件时,或者在这种特定情况下,仅包含“ abc”,“ akkbc”等单词的文档,我希望查询打到文档。

{
    "query": {
        "query_string" : {
            "default_field" : "sentanceList.wordList.word",
            "query" : "(*a*) AND (*b*) AND (*c*)"
        }
    }
}

我也尝试过:

{
    "query": {
        "bool": {
            "must":[
                { "wildcard": { "sentanceList.wordList.word": "*a*" }},
                { "wildcard": { "sentanceList.wordList.word": "*b*" }},
                { "wildcard": { "sentanceList.wordList.word": "*c*" }}
            ]
        }
    }
}

据我所知,该查询命中了上述文档,因为所有单词都在称为“单词”的单个字段中建立了索引。

有什么方法可以查询我想要的条件的文件吗?

0 个答案:

没有答案