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 Sharding-Sphere:Sharding-Proxy分库分表
Sharding-Sphere:Sharding-Proxy分库分表
2
ZooKeeper Web控制台ZKUI
ZooKeeper Web控制台ZKUI
3
Katacoda - 免费学习 Kubernetes 利器
Katacoda - 免费学习 Kubernetes 利器
4
深度学习基础:概率论(1)_正态分布(高斯分布)
深度学习基础:概率论(1)_正态分布(高斯分布)
5
Vue读取本地md文件
Vue读取本地md文件
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。