ElasticSearch查询时termQuery匹配失败

问题:ElasticSearch查询时termQuery查询中文匹配失败

NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder();
queryBuilder.withQuery(QueryBuilders.termQuery("loglvl", "ERROR"));

解决方法:使用xxx.keyword

NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder();
queryBuilder.withQuery(QueryBuilders.termQuery("loglvl.keyword", "ERROR"));

或者使用matchQuery

NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder();
queryBuilder.withQuery(QueryBuilders.matchQuery("loglvl", "ERROR"));

ElasticSearch的matchQuerytermQuery区别:

  • matchQuery:会将搜索词分词,再与目标查询字段进行匹配,若分词中的任意一个词与目标字段匹配上,则可查询到
  • termQuery:不会对搜索词进行分词处理,而是作为一个整体与目标字段进行匹配,若完全匹配,则可查询到

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/19/termquery-matching-failed-during-elasticsearch-query/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
ElasticSearch查询时termQuery匹配失败
问题:ElasticSearch查询时termQuery查询中文匹配失败 NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder(); queryBuilder.withQuery(Qu……
<<上一篇
下一篇>>
文章目录
关闭
目 录