【问题标题】:how to perform partial match elasticsearch如何执行部分匹配弹性搜索
【发布时间】:2017-08-30 14:16:10
【问题描述】:

我想同时执行完全匹配和部分匹配。例如,“Alize”,所以如果我输入“Ali”,它也应该返回“Alize”的结果。对于这种情况,如果我输入确切的单词“Alize”,我只能返回结果。

POST /ecommerce/_search
'{
  "query": {
      "multi_match": {
        "fields": [
          "name"
        ],
        "operator": "AND",
        "query": "Ali*"
      }
    },
    "size": 20,
    "stored_fields": [
      "uid",
      "_source"
    ]
}`

【问题讨论】:

标签: elasticsearch


【解决方案1】:

您可以使用如下查询字符串查询

"query": {
    "query_string": {
        "query": "Ali*",
        "fields": ["name"]
    }
}

或者使用通配符

"query": {
    "filtered": {
          "filter": {
            "bool": {
              "must": [
                {"query": {"wildcard": {"name": {"value": "Ali*"}}}},
              ]
            }
        }
    }
}

Wildcard document

【讨论】:

    猜你喜欢
    • 2021-09-12
    • 2020-11-09
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多