Elasticsearch Java API(十二)--搜索时指定分析器

版权声明:本文为博主原创文章,未经博主允许禁止转载(http://blog.csdn.net/napoay) https://blog.csdn.net/napoay/article/details/80170863

一、问题

今天群里一个同学提了一个问题,如何在搜索时指定分析器,实现自由切换。

二、分析

我们知道,分析器是写在mapping里面的,通过配置analyzer来指定的。如果没有额外的配置,analyzer中指定的分析器,既是索引期的分析器,又是搜索期的分析器。单独指定搜索期的分析器可以用search_analyzer覆盖。

三、解决

在搜索时指定分析器,只需要在构造Query的时候,增加一个analyzer配置。
普通的MatchQuery:

QueryBuilder matchQuery = QueryBuilders.matchQuery("title","足球")

指定搜索时分析器的MatchQuery:

QueryBuilder matchQuery = QueryBuilders
                .matchQuery("title","足球")
                .analyzer("ik_smart");

猜你喜欢

转载自blog.csdn.net/napoay/article/details/80170863