【问题标题】:Exact match in elastic search on multiple key values弹性搜索中多个键值的完全匹配
【发布时间】:2017-10-02 15:58:20
【问题描述】:

我正在尝试在 elasticsearch 中编写一个在多个字段上完全匹配的查询

我对单个字段的完全匹配有以下查询:

GET /index/data/_search
{
    "query": {
        "term": {
            "table":"abc"   
        }
    }
}

这里的键是“table”,值是“abc”。我想为精确匹配查询添加另一个名为“chair”的键,其值为“def”。

【问题讨论】:

  • 您希望它们被视为 OR 还是 AND 操作?
  • 我需要它是 AND
  • 那么@GQuintana 有正确的答案。最后一个考虑是使用“必须”与“过滤器”。必须考虑您的分数,过滤器将不计分。

标签: elasticsearch


【解决方案1】:

使用 bool+must 或 bool+filter 查询,两者都充当逻辑 and 运算符:

GET /index/data/_search
{
    "query": {
        "bool": {
             "must": [
                  {
                      "term": {
                          "table":"abc"   
                  },
                  {
                      "term": {
                          "chair":"def"   
                  }
            ]
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    • 1970-01-01
    相关资源
    最近更新 更多