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:不会对搜索词进行分词处理,而是作为一个整体与目标字段进行匹配,若完全匹配,则可查询到
上一篇 ElasticSearch 7.x 集成RestHighLevelClient
下一篇 ElasticSearch High Level REST API(1)文档基本操作
目录
文章列表
1 高等数学基础:导数的应用2:泰勒Taylor公式
高等数学基础:导数的应用2:泰勒Taylor公式
2
给Hexo博客添加Mathjax数学公式支持
给Hexo博客添加Mathjax数学公式支持
3
MySQL 处理重复数据
MySQL 处理重复数据
4
Android NDK调用C++标准库问题
Android NDK调用C++标准库问题
5
scp通过代理proxy代理传输文件
scp通过代理proxy代理传输文件
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。