【问题标题】:how to filter with script in elasticsearch如何在弹性搜索中使用脚本进行过滤
【发布时间】:2020-02-21 21:40:34
【问题描述】:

我需要搜索类似的东西

POST dev_profiles/profiles/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "query_string": {
            "query": "user:asd"
          },
          "script_fields": {
            "message_age": {
              "script": {
                "source": "return doc.createdAt.value.getHour() == params.h",
                "params": {
                  "h": 9
                }
              }
            }
          }
        }
      ]
    }
  }
}

但无法以正确的方式构建查询。有人可以帮忙吗?

在这种情况下,它会给出错误 [query_string] 格式错误的查询,应为 [END_OBJECT] 但找到 [FIELD_NAME] elasticsearch 6.8版本

【问题讨论】:

  • 您能否添加示例数据以及预期的结果?

标签: elasticsearch


【解决方案1】:

您要查找的查询是这样的:

{
  "query": {
    "bool": {
      "filter": [
        {
          "match": {
            "user": "asd"
          }
        }
        {
          "script": {
            "script": {
              "source": "return doc.createdAt.value.getHour() == params.h",
              "params": {
                "h": 9
              }
            }
          }
        }
      ]
    }
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-29
    • 1970-01-01
    • 2014-09-29
    • 2012-11-07
    • 2020-12-01
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    相关资源
    最近更新 更多