当前位置: 首页 > news >正文

dede网站婚纱模板淘宝关键词指数

dede网站婚纱模板,淘宝关键词指数,如何在天气预报网站做引流,建立文档Elasticsearch Pinyin拼音分词器 1. 前言2. pinyin分词器的多音字的错误修改3. 案例3.1 创建Mapping3.2 插入测试文档3.3 测试拼音搜索3.4 查看拼音分词后结果 4. 结语 1. 前言 在开发企业项目时,根据拼音搜索是很常见的场景,比如: 人员通讯…

Elasticsearch Pinyin拼音分词器

  • 1. 前言
  • 2. pinyin分词器的多音字的错误修改
  • 3. 案例
    • 3.1 创建Mapping
    • 3.2 插入测试文档
    • 3.3 测试拼音搜索
    • 3.4 查看拼音分词后结果
  • 4. 结语

1. 前言

在开发企业项目时,根据拼音搜索是很常见的场景,比如:

  • 人员通讯录,不确定人名具体是哪个汉字,只知道读音,可以输入汉字+全拼音、汉字+拼音首字母、拼音首字母等
  • 股票名称,炒股的人都知道,股票太多,记住所有股票code是不可能的,所以常用拼音首字母查股票。

在这里插入图片描述
在这里插入图片描述
Medcl大佬为我们提供了Pinyin分词器,可以让我们非常方便的使用拼音搜索文档。

2. pinyin分词器的多音字的错误修改

网上关于pinyin分词器的安装和使用的博客特别多,这里我就不赘述了。但是我得说一个非常重要的问题,目前我写博客时最新的版本8.x还是有这样的问题。虽然GitHub上,已经有人提出了这个Issue,但是目前还没有修复,所以我们就自己动手手动改改吧。

问题就是多音字“银行”的“行”,pinyin分词器会把“yin hang”错误的转成“yin xing”,当你测试“中国银行”时它是对的,但是“建设银行”时就又错了。不信的话你自己试试看。

这个时候需要修改下图中的jar包解压出来
在这里插入图片描述
然后修改如下图中文件polyphone.txt,注意千万不要一下子把"yin xing"替换成"yin hang"

因为“隐形”、“银杏”这些词的拼音就是"yin xing"。这个你需要手动一个一个看好了改,我不确定这个问题是nlp-lang的问题还是pinyin分词器作者改的问题,我看nlp-lang1.7的源代码这个文件里“银行”确实是对的"yin hang"。

改好后,再重新打成nlp-lang-1.7.jar包,替换上图的那个nlp-lang-1.7.jar文件,然后重启ES就行啦。
在这里插入图片描述

3. 案例

Pinyin分词器的配置参数还是比较多的,可以参考它GitHub的说明,
这些配置一定要认真配,不同的配置,出来的搜索效果是不同的。

3.1 创建Mapping

  • 我把拼音分词器作用在name.pinyin这个子字段上,因为name这个主字段按照"standard"分词有用;
  • 我这么设计适合人名搜索、股票名称搜索这些值比较短的场景;
  • 如果是文章内容,留言评论这些内容长的,一般按照IK分词就行,如果非要支持拼音搜索,可以把IK+Pinyin组合起来,设置tokenizer为ik_smart,filter为pinyin;
PUT pigg_test_pinyin
{"settings":{"analysis":{"analyzer":{"pinyin_analyzer":{"tokenizer":"my_pinyin"}},"tokenizer":{"my_pinyin":{"type":"pinyin","keep_first_letter":true,"keep_separate_first_letter":true,"keep_full_pinyin":true,"remove_duplicated_term":true}}}},"mappings":{"properties":{"name":{"type":"text","analyzer":"standard","fields":{"pinyin":{"type":"text","analyzer":"pinyin_analyzer"}}}}}
}

3.2 插入测试文档

PUT pigg_test_pinyin/_doc/1
{"name": "亚瑟王"
}PUT pigg_test_pinyin/_doc/2
{"name": "鼓励王"
}

3.3 测试拼音搜索

按照中文:

GET pigg_test_pinyin/_search
{"query": {"match": {"name.pinyin": {"query": "瑟王","operator": "and"}}}
}

按照中文+拼音全拼:

GET pigg_test_pinyin/_search
{"query": {"match": {"name.pinyin": {"query": "亚sewang","operator": "and"}}}
}

按照中文+拼音首字母:

GET pigg_test_pinyin/_search
{"query": {"match": {"name.pinyin": {"query": "亚sw","operator": "and"}}}
}

按照拼音首字母:

GET pigg_test_pinyin/_search
{"query": {"match": {"name.pinyin": {"query": "ysw","operator": "and"}}}
}

3.4 查看拼音分词后结果

第1种方法:

GET pigg_test_pinyin/_doc/1/_termvectors?fields=name.pinyin

第2种方法:

GET pigg_test_pinyin/_analyze
{"analyzer" : "pinyin_analyzer","text" : "亚瑟王"
}

通过上面2种方法,都可以发现分词结果如下:

y, s, w, ysw, ya, se, wang

这是因为我设置了"keep_separate_first_letter":true,这样拼音的首字母ysw会再次拆分成y, s, w
这样我们搜索"亚sw"时,就能匹配到文档了。

4. 结语

作为大龄程序员,30多岁了,不需要涉及太多技术,得潜心专研一两个技术,并戒掉浮躁,在项目实践中打磨自己。
所以光看文档、博客是没有用的,只有动手实践去解决业务问题,才会有更好的成长。

http://www.yidumall.com/news/74516.html

相关文章:

  • 莱芜半岛如何优化搜索引擎的搜索功能
  • 河南手机网站建设免费推广网站推荐
  • bootstrap 网站演示爱链网中可以进行链接买卖
  • 求个没封的w站2021不用下载2345网址导航桌面版
  • 东营做网站seo的廊坊seo网站管理
  • 北京网站建设方面佛山企业用seo策略
  • 佛山优化网站排名谷歌seo是什么
  • 小程序制作网站百度seo排名优化公司哪家好
  • 手机如何做车载mp3下载网站广州百度seo排名优化
  • 外贸网站建设十大标准外贸网站建站seo网站推广企业
  • 什么是php网站百度一下首页网址百度
  • 大型h5手游平台成都seo培
  • 怎样免费制作网站网站搭建一般要多少钱
  • 虎扑的网站是用什么技术做的账号权重查询入口
  • 公司网站建设进度外贸推广平台
  • 西安大网站建设公司排名上海seo网站优化软件
  • 延安做网站的公司外链网址
  • 天津智能网站建设购物链接
  • 怎么做免费个人网站合肥关键词排名技巧
  • 用vs做网站在安装时要勾选推送者seo
  • 关于做摄影的网站做网站需要多少钱 都包括什么
  • 东城网站建设北京seo不到首页不扣费
  • 咸宁响应式网站建设价格关键词排名怎么查
  • wordpress 去除rrsseo的研究对象
  • 怎样在微信公众号里做微网站百度山西授权代理
  • 国外免费b2b网站大全18最有效的广告宣传方式
  • 家装e站适合35岁女人的培训班
  • 做花型设计哪个网站下载素材好公司网站免费建站
  • 贵阳专业网站建设公司网络查询网站
  • 武汉网站建设十强企业长沙网站建设服务