ElasticSearch之分词及原理

1. 无分词情况

1.1 查看ES所有索引

http://127.0.0.1:9200/_cat/indices?v

在这里插入图片描述

1.2 默认创建ES索引

http://localhost:9200/medcl

在这里插入图片描述

1.3 向ES添加数据

http://localhost:9200/medcl/_doc

{
    "name": "刘德华"
}

在这里插入图片描述

1.4 查询数据

# 方式一
http://localhost:9200/medcl/_search?q=刘德华

# 方式二
http://localhost:9200/medcl/_search
{
	"query":{
		"match":{
			"name":"刘德华"
		}
	}
}

在这里插入图片描述

1.5 拼音查询无效果

在这里插入图片描述

2. ES分词

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

  • character filters :在 tokenizer 之前对文本进行处理。例如删除字符、替换字符
  • tokenizer :将文本按照一定的规则切割成词条( term ),例如:ik_smartik_max_word
  • tokenizer filter :将 tokenizer 输出的词条做进一步处理,例如大小写转换、同义词处理、拼音处理等

注:ES中的关键字keyword属性,不会参与分词。

在这里插入图片描述

对于上面的三个部分解释,上面流程图,一目了然。

2.1 ES分词器安装

ES中所有分词器的安装都是三步:

  • 下载分词器压缩包,然后解压

  • 放到ES安装目录的plugin目录下

  • 重启ES

拼音分词器:

https://github.com/medcl/elasticsearch-analysis-pinyin

ik分词器:

https://github.com/medcl/elasticsearch-analysis-ik

2.2 创建分词索引

http://localhost:9200/medcl

{
    "settings": {
        "analysis": {
            "analyzer": {
                "pinyin_analyzer": {
                    "tokenizer": "my_pinyin"
                }
            },
            "tokenizer": {
                "my_pinyin": {
                    "type": "pinyin",
                    "keep_separate_first_letter": false,
                    "keep_full_pinyin": true,
                    "keep_original": true,
                    "limit_first_letter_length": 16,
                    "lowercase": true,
                    "remove_duplicated_term": true
                }
            }
        }
    },
    "mappings": {
        "properties": {
        	# 对name字段采用拼音分词
            "name": {
                "type": "text",
                "analyzer": "pinyin_analyzer"
            }
        }
    }
}

在这里插入图片描述

2.3 插入数据

http://localhost:9200/medcl/_doc

{
    "name": "刘德华"
}
{
    "name": "张学友"
}
{
    "name": "郭富城"
}
{
    "name": "黎明"
}

在这里插入图片描述

2.4 查询所有数据

http://localhost:9200/medcl/_search
{
	"query":{
		"match_all":{}
	}
}

在这里插入图片描述

2.4.1 中文查询

在这里插入图片描述

2.4.2 拼音查询

在这里插入图片描述

2.5 插入同义词

在这里插入图片描述

2.5.1 同义词拼音查询

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

止步前行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值