相关疑难解决方法(0)

Elasticsearch 数组属性必须包含给定的数组项

我有如下文件:

{
    "tags" => [
        "tag1",
        "tag2",
    ],
    "name" => "Example 1"
}

{
    "tags" => [
        "tag1",
        "tag3",
        "tag4"
    ],
    "name" => "Example 2"
}
Run Code Online (Sandbox Code Playgroud)

我现在想要的是进行术语搜索,其中给定的数组可能如下所示:

[tag1, tag3]
Run Code Online (Sandbox Code Playgroud)

预期命中应该是:

{
    "tags" => [
        "tag1",
        "tag3",
        "tag4"
    ],
    "name" => "Example 2"
}
Run Code Online (Sandbox Code Playgroud)

但是,当我执行以下查询时:

GET _search
{
    "query": {
        "filtered": {
           "query": {
               "match_all": {}
           },
           "filter": {
               "bool": {
                   "must": [
                      {
                          "terms": {
                             "tags": [
                                "tag1",
                                "tag3"
                             ]
                          }
                      }
                   ]
               }
           }
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

因为示例 1 …

arrays term elasticsearch

5
推荐指数
2
解决办法
3510
查看次数

标签 统计

arrays ×1

elasticsearch ×1

term ×1