首页 > 解决方案 > 具有多个类别的弹性搜索查询

问题描述

所以我试图按流派或类别查询电影。

在我的文档中,每部电影都可以有 1 个或多个类别。

{
    title: 'title1',
    genre: ['Horror', 'Action', 'Adventure']
},
{
    title: 'title2',
    genre: ['Action', 'Comedy']
}

等等..我想通过提供多种流派类型来查询它,并希望匹配最好的类型。例如)查询匹配动作、喜剧的电影 -> 匹配在其类型字段中匹配最多类型的电影。它不必是完全匹配的。所以我基本上想找到与我的多种类型输入最匹配的文档。

有人有任何输入吗?该文档可以以不同的方式构建。谢谢你 :)

标签: elasticsearchcategories

解决方案


使用术语查询,您可以找到具有多个输入的文档

GET <index_name>/_search
    {

      "size": 20,
      "query": {
          "bool": {
          "must": [
            {
              "terms": {
                "genre": [
                  "horror",
                  "action"
                ]
              }
            }
          ]
        }
      }
    }

推荐阅读