java首字母查询_elasticsearch怎么实现拼音首字母查询

elasticsearch英文查询

3a01135d63cc53c1637245dbbf8b45ac.png

在我们使用es的时候,简单的查询大家肯定都会了。利用springboot就可以实现基本的增删改查了。但是今天我们项目中就遇到了问题。

百度查询效果演示:

e8ccc9e65532e3031dfad27933a041e2.png

大家在搜索的时候,看到了吗?只要输入前面的字,百度就可以关联出关键字出来。有时候我们输入拼音:meinv,都可以查询出来。那我们想要实现这样的效果怎么做?

环境安装

elasticsearch安装 很简单这里就不显示了,主要是依赖的中文分词器和拼音分词器。

什么是分词器?

分词器简单来说,就是把我们想要查询的语句,分割为不同的短句,然后保存,建立索引。当我们查询的时候,就可以把这些短句拼接起来成为关键字查询结果。

拼音分词器安装

50036919e4dce953afff2033933741b2.png

不需要其他配置,启动elasticsearch成功即表示分词器安装成功。 安装插件很简单,只需要复制重启就好了。哈哈

代码实现

如果springboot集成后怎么使用呢?其实很简单,只需要在我们之前的代码上添加注释即可。

@Field(type = FieldType.text, searchAnalyzer="pinyin",analyzer="pinyin")

这里有个注意的地方。就是大家如果使用FieldType.keyword的时候,拼音分词会失效。keyword会让es不进行该字段的分词,然后拼音也就无法分词使用了。比如:刘德华,ldh

测试一下效果,果然,输入ldh就可以查询出来刘德华有关的所有信息。今天就实现了拼音搜索的功能了。

以上内容皆为本人观点,欢迎大家提出批评和指导,我们一起探讨!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值