WildcardQuery PrefixQuery中的中文单词

时间:2019-07-16 14:32:56

标签: java elasticsearch kibana elasticsearch-6

我使用WildcardQuery成功搜索英语单词。但是,当我 搜索中文单词,无法正确搜索结果。

例如,我有一个字符串是“中文字”。如果我搜索“文”,则显示该词 正确地。但是,当我搜索“中文”时,无法显示此结果。

带有elasticsearch-rest-high-level-client的Java代码以生成查询

BoolQueryBuilder search = QueryBuilders.boolQuery();
search.should(QueryBuilders.wildcardQuery("firstName", customerFilter.getSearch().toLowerCase()));
search.should(QueryBuilders.wildcardQuery("lastName", customerFilter.getSearch().toLowerCase()));
Kibana - elasticsearch query 
GET /customers/_search
{
   "from":0,
   "size":5,
   "timeout":"60s",
   "query":{
      "bool":{
         "must":[
            {
               "bool":{
                  "should":[
                     {
                        "wildcard":{
                           "firstName":{
                              "wildcard":"孙虞"

                           }
                        }
                     }
                  ]
               }
            }
         ],
         "adjust_pure_negative":true,
         "boost":1.0
      }
   }
}

未显示结果

0 个答案:

没有答案