【问题标题】:Elasticsearch query all documents where keyword value is greater than X [7.2]Elasticsearch查询关键字值大于X的所有文档[7.2]
【发布时间】:2020-06-05 13:30:35
【问题描述】:

我正在尝试查找名称长度超过 32 个字符的所有文档。

这是文档的映射。

export const boards = {
  handle: {
    type: "text"
  },
  name: {
    type: "keyword"
  },
};

我尝试使用 painless 查询该字段的size,但以下查询没有返回任何结果,尽管有。

查询

GET /_search
{
  "query": {
    "bool" : {
      "filter" : {
        "script" : {
          "script" : {
            "source": "doc['name'].size() > 32",
            "lang": "painless"
          }
        }
      }
    }
  }
}

我认为这可能与所使用的关键字类型有关。

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    我从this forum post 发现,使用关键字大小时不是正确的方法。相反,您需要使用: .value.length() 使我的最终查询如下所示:

    {
      "query": {
        "bool" : {
          "filter" : {
            "script" : {
              "script" : {
                "source": "doc['name'].value.length() > 32",
                "lang": "painless"
              }
            }
          }
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-13
      • 2022-01-26
      • 1970-01-01
      相关资源
      最近更新 更多