Elasticsearch添加拼音搜索支持
发布日期:2021-07-01 06:08:10 浏览次数:3 分类:技术文章

本文共 3560 字,大约阅读时间需要 11 分钟。

一份不错的资料

一、安装插件

文档:

二、新建索引添加拼音支持

<index> 替换为 实际 index

<type> 替换为 实际 type

PUT 
{
"settings" : {
"analysis" : {
"analyzer" : {
"pinyin_analyzer" : {
"tokenizer" : "my_pinyin" } }, "tokenizer" : {
"my_pinyin" : {
"type" : "pinyin", "keep_first_letter":false, "keep_separate_first_letter" : false, "keep_full_pinyin" : true, "keep_original" : false, "limit_first_letter_length" : 16, "lowercase" : true } } } }, "mappings": {
"
": {
"properties": {
"name": {
"type": "text", "index": true, "fields":{
"pinyin":{
"type":"text", "analyzer":"pinyin_analyzer" } } }, "link": {
"type": "keyword", "index": false }, "id": {
"type": "long" }, "update_time": {
"type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" } } } }}

分词测试

GET 
/_analyze{
"field": "name.pinyin", "text": "内蒙古"}返回{
"tokens": [ {
"token": "nei", "start_offset": 0, "end_offset": 1, "type": "word", "position": 0 }, {
"token": "meng", "start_offset": 1, "end_offset": 2, "type": "word", "position": 1 }, {
"token": "gu", "start_offset": 2, "end_offset": 3, "type": "word", "position": 2 } ]}

二、已有索引添加拼音支持

1、新建索引

PUT 
{
"mappings": {
"
": {
"properties": {
"name": {
"type": "keyword", "index": true }, "link": {
"type": "keyword", "index": false }, "id": {
"type": "long" }, "update_time": {
"type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" } } } }}

2、设置拼音分词器

POST  
/_closePUT
/_settings{ "index": { "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, "keep_original": false, "limit_first_letter_length": 16, "lowercase": true } } } }}POST
/_open

3、修改mapping,添加拼音分词器

PUT 
/
/_mapping{
"
": {
"properties": {
"name": {
"type": "keyword", "index": true, "fields":{
"pinyin":{
"type":"text", "analyzer":"pinyin_analyzer" } } }, "link": {
"type": "keyword", "index": false }, "id": {
"type": "long" }, "update_time": {
"type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" } } }}GET
/_mapping# 将当前索引的数据重新替换一下当前索引POST
/_update_by_query?conflicts=proceed

4、搜索测试

get 
/_search{ "query_string": { "fields": [ "name", "name.pinyin" ], "query": "王苏川", "default_operator": "AND" }}

参考

转载地址:https://pengshiyu.blog.csdn.net/article/details/103153614 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Python 依赖库管理pip、pipreqs、pigar、pip-tools、pipdeptree
下一篇:拼音分词扩展elasticsearch-analysis-pinyin安装

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月14日 02时23分22秒