技术标签: Elasticsearch
该安装地址可以参考github开源项目elasticsearch-analysis-pinyin
https://github.com/medcl/elasticsearch-analysis-pinyin/releases
,需要注意的是要下载与自己版本一致的,版本不一致的可能会有问题。plugins
文件夹中创建目录pinyin
pinyin
文件夹中bin
中/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v7.4.0/elasticsearch-analysis-pinyin-7.4.0.zip
,同样需要注意的是,将7.4.0
替换成自己的版本。这个插件包含:analyzer:pinyin
,tokenizer:pinyin
和token-filter:pinyin
,同时支持部分自定义选项.
keep_first_letter
:这个参数会将词的第一个字母全部拼起来.例如:刘德华->ldh.默认为:truekeep_separate_first_letter
:这个会将第一个字母一个个分开.例如:刘德华->l,d,h.默认为:flase.如果开启,可能导致查询结果太过于模糊,准确率太低.limit_first_letter_length
:设置最大keep_first_letter
结果的长度,默认为:16keep_full_pinyin
:如果打开,它将保存词的全拼,并按字分开保存.例如:刘德华> [liu,de,hua],默认为:truekeep_joined_full_pinyin
:如果打开将保存词的全拼.例如:刘德华> [liudehua],默认为:falsekeep_none_chinese
:将非中文字母或数字保留在结果中.默认为:truekeep_none_chinese_together
:保证非中文在一起.默认为: true, 例如: DJ音乐家 -> DJ,yin,yue,jia, 如果设置为:false, 例如: DJ音乐家 -> D,J,yin,yue,jia, 注意: keep_none_chinese
应该先开启.keep_none_chinese_in_first_letter
:将非中文字母保留在首字母中.例如: 刘德华AT2016->ldhat2016, 默认为:truekeep_none_chinese_in_joined_full_pinyin
:将非中文字母保留为完整拼音. 例如: 刘德华2016->liudehua2016, 默认为: falsenone_chinese_pinyin_tokenize
:如果他们是拼音,切分非中文成单独的拼音项. 默认为:true,例如: liudehuaalibaba13zhuanghan -> liu,de,hua,a,li,ba,ba,13,zhuang,han, 注意: keep_none_chinese
和keep_none_chinese_together
需要先开启.keep_original
:是否保持原词.默认为:falselowercase
:小写非中文字母.默认为:truetrim_whitespace
:去掉空格.默认为:trueremove_duplicated_term
:保存索引时删除重复的词语.例如: de的>de, 默认为: false, 注意:开启可能会影响位置相关的查询.ignore_pinyin_offset
:在6.0之后,严格限制偏移量,不允许使用重叠的标记.使用此参数时,忽略偏移量将允许使用重叠的标记.请注意,所有与位置相关的查询或突出显示都将变为错误,您应使用多个字段并为不同的字段指定不同的设置查询目的.如果需要偏移量,请将其设置为false。默认值:true示例1:
POST _analyze
{
"analyzer": "pinyin",
"text": "美国"
}
运行上面的测试示例,结果如下:
{
"tokens" : [
{
"token" : "mei",
"start_offset" : 0,
"end_offset" : 0,
"type" : "word",
"position" : 0
},
{
"token" : "mg",
"start_offset" : 0,
"end_offset" : 0,
"type" : "word",
"position" : 0
},
{
"token" : "guo",
"start_offset" : 0,
"end_offset" : 0,
"type" : "word",
"position" : 1
}
]
}
ik中文分词器,貌似没有可以设置的属性,直接用就行了。
拼音分词器有许多可以设置的选项。可以自行定义。原本的拼音分词器,只能分析出来全拼、首字母全拼、和每个字的完整拼音,不过这个每个字的完整拼音我觉得没什么作用,太细微。我想实现的功能是,可以让中文分词器分词后的字词,再被拼音分词器分词,就可以用下面的方式,tokenizer 使用 中文分词器ik_max_word,最后的标记过滤器,再使用pinyin 分词器过滤一遍就可以了。
1、其中ik_pinyin_analyzer 可以使用中文和pinyin组合
PUT /my_index
{
"settings": {
"number_of_replicas": 1,
"number_of_shards": 1,
"analysis": {
"analyzer": {
"ik_pinyin_analyzer":{
"type":"custom",
"tokenizer" :"my_ik",
"filter": "pinyin_first_letter_and_full_pinyin_filter"
},
"pinyin_analyzer": {
"tokenizer": "my_pinyin"
}
},
"tokenizer": {
"my_ik":{
"type":"ik_max_word"
},
"my_pinyin":{
"type": "pinyin",
"keep_first_letter": true,
"keep_separate_first_letter": false,
"keep_full_pinyin": false,
"keep_joined_full_pinyin": true,
"keep_none_chinese": true,
"none_chinese_pinyin_tokenize": false,
"keep_none_chinese_in_joined_full_pinyin": true,
"keep_original": false,
"limit_first_letter_length": 16,
"lowercase": true,
"trim_whitespace": true,
"remove_duplicated_term": true
}
},
"filter": {
"pinyin_first_letter_and_full_pinyin_filter": {
"type": "pinyin",
"keep_first_letter": true,
"keep_separate_first_letter": false,
"keep_full_pinyin": false,
"keep_joined_full_pinyin": true,
"keep_none_chinese": true,
"none_chinese_pinyin_tokenize": false,
"keep_none_chinese_in_joined_full_pinyin": true,
"keep_original": false,
"limit_first_letter_length": 16,
"lowercase": true,
"trim_whitespace": true,
"remove_duplicated_term": true
}
}
}
}
}
PUT /my_index/_mapping
{
"properties": {
"id":{
"type": "integer"
},
"name":{
"type":"keyword",
"fields":{
"name_ik_pinyiin":{
"type":"text",
"analyzer":"ik_pinyin_analyzer",
"search_analyzer" : "ik_pinyin_analyzer"
},
"name_pinyin":{
"type":"text",
"analyzer":"pinyin_analyzer"
}
}
}
}
}
POST /my_index/_bulk
{"index":{"_id":1}}
{"name":"唐吉坷德-特蓝屏"}
{"index":{"_id":2}}
{"name":"王二麻子"}
{"index":{"_id":3}}
{"name":"王二"}
{"index":{"_id":4}}
{"name":"麻子"}
测试:
# 查看分词器效果
GET /my_index/_analyze
{
"field": "name.name_ik_pinyiin",
"text": ["王二麻子"]
}
# 查看分词器效果
GET /my_index/_analyze
{
"field": "name.name_pinyin",
"text": ["王二麻子"]
}
文章浏览阅读8.1k次,点赞14次,收藏17次。第一步:查看错误日志打开cmd运行seata-server.bat查看错误信息Error: missing server' JVl at C:\ Program Files (x86)\ Javaljre1. 8. 0_221\ bin\ server \ jvn. d11Please instal1 or use the TRE or TDK that contains these missing components找到出错目录搜索jvm.dll在bin文件夹新_seata-server.batshantui
文章浏览阅读6.4k次。service的实现主要有两种方式,一种是onStart方式,另一种是onBoundd方式。两种方式的关于service的生命周期不一样。前者是和activity的生命周期一样的,后者则不是。activity结束了service可以继续运行。onStart 方法来调用service的话,调用者其实和service是没有关系的,调用者消亡了的话,service是依然可以继续运行的;onB_service的onstart方法
文章浏览阅读302次。数智化转型的目的和核心都是实现业务转型、创新和增长,而我们的基石就是数智化技术。企业做数智化转型,需要什么样的数智化人才?员工要具备哪些能力才能助力企业完成转型?这样的员工该如何培养......首先我们来看下都有哪些数智化人才,以及他们分别需要什么能力。第一类人才是数字化专业人才,他们的主要任务是发现企业业务上的问题、并利用科学技术创造性的解决问题。对于专业人才来说,他需要有技术能力、产品能力、运营能力以及项目管理能力,具体解释为:技术能力:系统或平台规划与设计、开发与建设等_数智化落地,需要专业能力
文章浏览阅读3k次。由于中的数据源是直接给了一个对象,所以table中的每一个cell用户都不用管,要使身份证号 这一列内容以\n换行。将内容自动换行,IE,OP,Chrome,Safari都可以,FF就悲剧了。被包围在 pre 元素中的文本通常会保留空格和换行符。nowrap 文本不会换行,文本会在在同一行上继续,直到遇到 标签为止。pre-wrap 保留空白符序列,但是正常地进行换行。pre-line 合并空白符序列,但是保留换行符。空白会被浏览器忽略。数据源中的每一个元素的对象中的字段用。_el-table 换行
文章浏览阅读789次。文章目录前言一、张量是什么?二、张量的属性三、张量创建3.1 依据原有数据创建3.1.1. torch.tensor()3.1.2 torch.from_numpy()3.2 数学方法创建3.2.1 torch.zeros()3.2.2 torch.ones()3.2.3 torch.fill()3.2.4 torch.arange()3.2.5 torch.linspace()3.2.6 torch.logspace()3.2.7 torch.eye()3.3 依概率分布创建张量3.3.1 torch.n_tensor 开根号
文章浏览阅读1w次。A:android本身的机制,调节volume时不会去控制声卡上的寄存器,而是通过软件算法将volume调大或者调小。声卡控制的音频输出有好几路,每一路都有vol和gain控制着音量大小。#cat /sys/class/sound/card0/device/RT5631/codec_reg →察看寄存器值# tinymix 15 20 → Speaker Playback Volu_aml8726mx刷linux
文章浏览阅读7.3w次,点赞471次,收藏877次。添加虚拟环境,出现conda executable is not found_conda executable is not found
文章浏览阅读2.8w次,点赞22次,收藏123次。尝试用两种或以上方式设计并实现一个分频器_lpm div
文章浏览阅读2.2k次。platform设备 函数解析 这些函数都在inlcude/linux/platform_device.h 和platform.c中1. platform驱动结构体:struct platform_driver { int (*probe)(struct platform_device *_hardware/qcom/audio/hal/plaformc platform_get_parameters是什么意思
文章浏览阅读62次。网络应用(network application)是计算机网络之所以存在的理由。要是我们设想不出任何有用的网络应用,那就没有必要设计支持它们的网络协议了。不过,过去30年内已有不少人设计出大量精妙的网络应用。这些应用既包括从20世纪80年代流行起来的基于文本的经典应用,例如远程计算机访问、电子邮件、文件传送、新闻组、聊天等;也包括近些年来所谓的多媒体应用,例如Web、因特网电话、视频会议、音频/视..._trdp 乱序
文章浏览阅读2.9w次,点赞160次,收藏1.7k次。废话不多说,不管是应对期末考试还是考研基础复习,刷题是必不可少的!!! 大家冲就完了!!!!记得给 罡罡同学点关注哦! 后期还会更新其他题库的呢!!!打赏一点钱,帮我买瓶肥宅快乐水,继续创作,谢大家!计算机组成原理试题库——题目及答案计算机组成原理试卷1一、选择题(共20分,每题1分)1.CPU响应中断的时间是______。A.中断源提出请求;B.取指周期结束;C.执行周期结束;D.间址周期结束。2.下列说法中______是正确的。A.加法指令的执行周期一定要访存;B.加法指令_云南大学滇池学院2024计算机组成原理期末考试
文章浏览阅读1.2w次。需求说明:IPC高清摄像机知识储备内容 :第一部分 从四大方面分析CCD传感器与CMOS传感器的优劣 第二部分 解析数码相机的技术参数整理来自:时间的诗第一部分 从四大方面分析CCD传感器与CMOS传感器的优劣来自:http://www.elecfans.com/yuanqijian/sensor/20_ipc shutter