Elasticsearch 字段录入中文之后,wildcard模糊查询只能单个字搜索,多个字搜索没有结果

"query":{
    "bool":{
      "must":[
        {"bool":{
          "should":[
            {"wildcard":{"mobile":"*小小*"}},
            {"wildcard": {"name": "*小小*"}} //这里需要加中文
          ]}
        }
      ]
    }
  }

最简单的解决办法就是把wildcard 换成 match_phrase

"query":{
    "bool":{
      "must":[
        {"bool":{
          "should":[
            {"wildcard":{"mobile":"*小小*"}},
            {"match_phrase": {"name": "*小小*"}} //这里需要加中文
          ]}
        }
      ]
    }
  }

should和must同时使用
“bool”:{
must:[
{must条件 },
{“bool”:{“should”:[]}}
]
}

你可能感兴趣的:(php,elasticsearch)