elasticsearch - Elasticsearch针对两个字段的两组术语

标签 elasticsearch search-engine

我正在尝试使用Elasticsearch返回在两个字段中具有不同术语的文档。不知道怎么写,可能是这样的:

query:
    field1: "term set #1"
    field2: "very different term set #2"

理想情况下,术语集应该是字符串数组。我希望对所有术语和字段命中进行“或”运算,以便最好的文档将在每个字段中都包含所有命中,但如果没有任何字段,那就可以了。

最佳答案

您可以使用 Terms Query bool should来实现此目的,前提是您想要不进行分析就匹配确切的值。 Terms Query的优点在于它隐式地使用值数组,并且隐式地是OR操作。

{
   "query": {
      "bool": {
         "should": [
            {
               "terms": {
                  "field1": [
                     "field1 value1",
                     "field1 value2",
                     "field1 value3"
                  ]
               }
            },
            {
               "terms": {
                  "field2": [
                     "field2 value1",
                     "field2 value2",
                     "field2 value3"
                  ]
               }
            }
         ]
      }
   }
}

关于elasticsearch - Elasticsearch针对两个字段的两组术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30447690/

相关文章:

php - 如何创建一个简单的Mysql搜索引擎

seo - 主页重定向到 X 文件夹 - Google 对主页排名有什么影响?

http - Google Analytics 如何知道 HTTPS 入站自然搜索流量的来源?

amazon-web-services - 在 AWS elasticsearch 中索引 pdf 文件

windows - Elasticsearch Master节点困惑

php - 使用PHP的Elasticsearch GeoMapping无法正常工作

java - 如何使用 Java API 获得 Elasticsearch 5.2.2 搜索突出显示

elasticsearch - ElasticSearch查询类型特定条件?

search-engine - 从搜索引擎中隐藏单个内容 block ?

SEO:建议上传并发布网站的测试版/非完成版?