es拼音分词器(仅供自己参考)

server/2024/11/26 21:38:51/

github地址:https://github.com/infinilabs/analysis-pinyin(各种版本,对接es版本)

拼音分词器存在的问题:

1、是直接将每个字的拼音返回和一段话的拼音首字母返回,不能很好的分词。

2、不会保留中文,转为拼音之后,没有中文存在。

自定义分词器
默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。

elasticsearch中分词器(analyzer)的组成包含三部分:

1、 character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符
 2、tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword,就是不分词;还有ik_smart
3、tokenizer filter:将tokenizer输出的词条做进一步处理。例如大小写转换、同义词处理、拼音处理等
文档分词时会依次由这三部分来处理文档:

自定义分词器的配置:(只能是相应的索引库使用,创建了test索引库,那么自定义的只能在这个索引库中使用。不能在其他索引库中使用)

#自定义分词器,在ik和py的基础上自定义
PUT /test
{"settings": {"analysis": {"analyzer": { "my_analyzer": { "tokenizer": "ik_max_word",        #分词用ik"filter": "py"            #配置拼音分词器}},"filter": {"py": { "type": "pinyin",        #拼音分词器"keep_full_pinyin": false,         #   关闭了单个字符的转为拼音"keep_joined_full_pinyin": true,    #开启了词语的拼音转换"keep_original": true,                #保留中文"limit_first_letter_length": 16,        #首字母的长度小于16"remove_duplicated_term": true,        #去除重复的"none_chinese_pinyin_tokenize": false    #禁止除中文以为的其他语言转为拼音}}}},"mappings": {"properties": {"name":{"type": "text","analyzer": "my_analyzer","search_analyzer": "ik_smart"}}}
}

为了避免搜索的时候使用拼音搜到同音词,所以在搜索的时候使用ik分词器"search_analyzer": "ik_smart"


http://www.ppmy.cn/server/137774.html

相关文章

无桥图腾柱PFC -- 基于平均电流的双闭环仿真

一、无桥图腾柱PFC基于平均电流的双闭环MATLAB仿真 1.MATLAB仿真模型 1.1.仿真模型图 主电路: 双闭环模型: 1.2.器件参数 输入电压: 电感: 输出电容: 负载电阻: 开关选择: 极性检测模块&…

爬虫笔记22——当当网图书详情页静、动态数据爬取

当当网动态数据爬取 静态数据爬取动态数据爬取接口参数的获取 静态数据爬取 进入图书详情,这里的图书数据信息比如标题、价格、图片都是非结构化数据,可以使用xpath语法提取。是很简单的数据采集了,就不细说了。 动态数据爬取 滑到下面这里的…

112. gui辅助调节光源阴影

光源阴影范围,也可以通过GUI界面可视化调节,这样更形象。 阴影范围可视化调节 根据工厂尺寸数量级预先设置.shadow.camera,然后通过GUI调试选择一个合适的值.shadow.camera的位置通过光源的位置调试。.shadow.camera参数改变后,注…

label数据(或自定义数据集)转imagenet(用于mmclassification)

理论上用于分类的图像一般都不需要用labelme来标注的,笔者是因为刚好手上有这么一组数据,所以就顺带处理了。labelme标注完的数据每张还包含了一个json文件,这个在分类任务中用不上。具体的mmclassification使用方法在我的另一篇文章里有&…

基于centos7.9搭建MariaDB10.5高可用集群

MariaDB-HA 环境初始化安装MariaDB配置集群 基于centos7.9搭建MariaDB10.5数据库高可用集群,对标mysql5.7 节点IPnode1192.168.200.101node2192.168.200.102node3192.168.200.103 环境初始化 #!/bin/bash# 定义节点信息 NODES("192.168.200.101 node1"…

C#实现word和pdf格式互转

1、word转pdf 使用nuget: Microsoft.Office.Interop.Word winform页面: 后端代码: //using Spire.Doc; //using Spire.Pdf; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using Sy…

部署Prometheus、Grafana、Zipkin、Kiali监控度量Istio

1. 模块简介 Prometheus 是一个开源的监控系统和时间序列数据库。Istio 使用 Prometheus 来记录指标,跟踪 Istio 和网格中的应用程序的健康状况。Grafana 是一个用于分析和监控的开放平台。Grafana 可以连接到各种数据源,并使用图形、表格、热图等将数据…

Nginx 的 Http 模块介绍(中)

1. preaccess 阶段 在 preaccess 阶段在 access 阶段之前,主要是限制用户的请求,比如并发连接数(limit_conn模块)和每秒请求数(limit_req 模块)等。这两个模块对于预防一些攻击请求是很有效的。 1.1 limi…