【问题标题】:Elasticsearch wildcard query add second parameterElasticsearch 通配符查询添加第二个参数
【发布时间】:2018-10-30 16:48:54
【问题描述】:

参考 - https://www.elastic.co/guide/en/elasticsearch/reference/6.3/query-dsl-query-string-query.html

如果我想在这个 ES 查询中添加通配符搜索 -

{
  "query": {
    "bool": {
      "must": [
        { "match": { "fieldA": "{{fieldA}}" } }
      ]
    }
  }
}

那么通配符查询就变成了——

{
  "query": {
    "query_string": {
      "default_field": "fieldA",
      "query": "{{fieldA}}"
    }
  }
}

但是,如果我在第一个 ES 查询中有 2 个参数 -

{
  "query": {
    "bool": {
      "must": [
        { "match": { "fieldA": "{{fieldA}}" } },
        { "match": { "fieldB": "{{fieldB}}" }}
      ]
    }
  }
}

使用 Wilcard 的 ES 查询会是什么?

【问题讨论】:

    标签: elasticsearch wildcard


    【解决方案1】:

    有一个更复杂的查询字符串示例:fieldA:this AND fieldB:that

    【讨论】:

    • 由于第一个示例中的 default_field 是 fieldA,现在我们在这里也需要 fieldB,您建议最终查询的外观如何?
    • 好吧,我想我已经在查询字符串中指定了“fieldB”,不是吗?
    • 这是您的建议吗? { "query": { "query_string": { "default_field": "fieldA", "query": "{{fieldA}} AND {{fieldB}}" } } }
    • 不,这里:"query": { "query_string": { "query": "fieldA:fieldAValue AND fieldB:fieldBValue" } }。我不太明白你为什么急于使用default_field(这不是强制性的)和query_string——你也会通过bool.must查询获得分数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 2021-09-01
    • 1970-01-01
    • 2020-08-09
    • 2018-08-13
    • 1970-01-01
    相关资源
    最近更新 更多