如何执行部分匹配elasticsearch

时间:2017-04-05 06:12:51

标签: elasticsearch

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

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

1 个答案:

答案 0 :(得分:4)

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

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

或使用通配符

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

Wildcard document