开始使用ElasticSearch(九)之拼音搜索
2021-02-01 12:02
447 查看
根据之前搜索的研究,基本上简单的搜索已经完成,但其实很多地方还是不满足。 比如用户切换输入法有误或者中病毒丢失输入法,只能输入拼音搜索。那么我就来研究一下咯! 首先我们看看需要准备一些什么? 1.es拼音插件 2.拼音插件的mapping 3.拼音搜索
1.es拼音插件
下载地址:https://github.com/medcl/elasticsearch-analysis-pinyin/releases
根据你的版本下载对应的插件,下载我框起来的那个。下面2个是源码,需要自己打包。
下载成功后解压缩到es的plugins文件夹的pinyin文件夹里面。如果没有就创建一个。
然后创建拼音的索引在type上,写法就是固定的,照抄就好
然后测试一下看看拼音插件有没有安装成功
2.拼音插件的mapping
这里的series是我的字段,你们不能照抄,要根据自己的字段修改。
然后导入数据(可以看第四节,操作步骤一样)
1.这里有一个蛮关键的地方,我用的7.6.2的es版本只支持一个type,在导入设置output的时候
一定要和之前定义的一致(默认为:_doc),不然数据导不进去,界面还不报错,我后来也是查
看了es的log才找到原因。
2.在有数据进行mapping的时候失败,然后我将type从keyword改成text后映射成功,但是用拼音搜
索不到数据,我查不到原因是为什么,我从头开始做用type=“text” 再导入数据也是可以搜出来拼音结
果的,难道需要先mapping后导入数据?希望大神指导。
3.mapping的时候type=”keword“类型不能使用match_phrase_prefix查询,会报错:无法create,改成
type=”text“后就可以使用了。
所以我现在新建了一个索引,重新设置然后重新导入数据就可以。很笨的方法。
以上是我遇到的一些坑,希望对你们有帮助,也希望大神指导。
有需要现成请求的,我写好的查询模板的朋友可以私我
3.拼音搜索
数据导入成功后,我来测试一下。
搜索的时候需要在匹配字段后面加上后缀.pinyin。
拼音搜索就差不多配置完成了。
相关文章推荐
- 翻译【ElasticSearch Server】第一章:开始使用ElasticSearch集群(4)
- 翻译【ElasticSearch Server】第一章:开始使用ElasticSearch集群(5)
- 使用 Elasticsearch 实现博客站内搜索
- 翻译【ElasticSearch Server】第一章:开始使用ElasticSearch集群(3)
- elasticsearch--搜索_Java基础使用
- Elasticsearch 实现拼音,中文,首字母混合搜索
- ElasticSearch -实时的分布式搜索和分析引擎-基本使用(一)
- 翻译【ElasticSearch Server】第一章:开始使用ElasticSearch集群(7)
- 使用Java调用ElasticSearch提供的相关API进行数据搜索完整实例演示
- elasticsearch--搜索_Java基础使用
- Nodejs:mongo-connector同步mongo数据;使用elasticsearch搜索
- 使用 ElasticSearch6.0 快速实现全文搜索功能
- Springboot集成elasticsearch 使用IK+拼音分词
- Elasticsearch:如何使用 Elasticsearch 6.2 搜索中文、日语和韩语文本 - 第 3 部分:语言检测工具
- Elasticsearch:使用布尔查询提高搜索的相关性
- 分布式搜索elasticsearch java API 之(八)------使用More like this实现基于内容的推荐
- Windows下使用Java调用ElasticSearch提供的相关API进行数据搜索完整实例演示
- 使用 Spring、Elasticsearch 及 Logstash 构建企业级数据搜索和分析平台
- elasticsearch--搜索_Java基础使用
- elasticsearch--搜索_Java基础使用