【问题标题】:query specific fields by document type按文档类型查询特定字段
【发布时间】:2014-02-13 14:51:52
【问题描述】:

我目前正在开始使用 Elasticsearch,我正在尝试构建一个搜索查询,根据文档类型在不同字段中查找关键字。

例子:

索引名称:index1

文档类型:

  • doc1(_id、名称、尺寸、颜色、重量)
  • doc2(_id、名称、持续时间、长度、宽度、高度)

现在我想在index1 中查询doc1doc2 类型的文档,但在doc1 我只想在namesizeweight 列中搜索,而在@ 987654328@ 我想在namelengthheight 列中搜索。

如何在单个查询中实现这一目标?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    您可以按类型和名称引用字段并使用布尔查询。下面是一个基本示例。

    {
        "query": {
            "bool": {
                "should": [
                   {
                       "bool": {
                           "must": [
                              {
                                  "term": {
                                     "doc1.name": {
                                        "value": "2"
                                     }
                                  }
                              },
                              {
                                  "term": {
                                     "doc1.size": {
                                        "value": "23"
                                     }
                                  }
                              },
                              {
                                  "term": {
                                     "doc1.weight": {
                                        "value": "52"
                                     }
                                  }
                              }
                           ]
                       }
                   },
                   {
                       "bool": {
                           "must": [
                              {
                                   "term": {
                                     "doc2.name": {
                                        "value": "2"
                                     }
                                  }
                              },
                              {
                                  "term": {
                                     "doc2.length": {
                                        "value": "23"
                                     }
                                  }
                              },
                              {
                                  "term": {
                                     "doc2.height": {
                                        "value": "52"
                                     }
                                  }
                              }
                           ]
                       }
                   }
                ]
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-07-26
      • 2014-10-12
      • 2015-07-24
      • 1970-01-01
      • 2017-04-28
      • 1970-01-01
      • 2020-12-02
      • 2018-12-01
      • 1970-01-01
      相关资源
      最近更新 更多