赞
踩
分词器是 Elasticsearch 用于将文本拆分为单词(词项)的组件,以便于搜索和索引。以下是一些关于 Elasticsearch 分词器的常见问题和相关操作的介绍:
分词器是 Elasticsearch 中的一个组件,用于将文本转换为词项,以便于搜索和索引。它负责将输入的文本进行拆分、标准化和处理,生成最终的词项列表。
Elasticsearch 提供了多个内置的分词器,每个分词器适用于不同的场景和需求。以下是一些常用的内置分词器:
这里是一个简单的示例,演示如何使用内置的 standard 分词器测试文本的分词效果:
POST _analyze
{
"analyzer": "standard",
"text": "Hello world, this is Elasticsearch"
}
以上操作会将文本 “Hello world, this is Elasticsearch” 使用 standard 分词器进行分析,并返回分词结果。
创建索引时选择分词器方法
在创建索引时,可以通过指定字段的映射来指定分词器。下面是创建索引并指定字段分词器的示例:
PUT /my_index { "settings": { "analysis": { "analyzer": { "my_analyzer": { "type": "whitespace", } }, } }, "mappings": { "properties": { "name": { "type": "text", "analyzer": "my_analyzer" } } } }
更换索引字段分词器方法:
要更换字段的分词器,需要重新定义字段的映射,并指定新的分词器。下面是更换字段分词器的一般步骤:
1.关闭索引:
POST /索引名/_close
2.更新字段映射:
PUT /索引名/_mapping
{
"properties": {
"字段名": {
"type": "text",
"analyzer": "新的分词器"
}
}
}
3.打开索引:
POST /索引名/_open
使用中文分词器的主要目的是对中文文本进行正确、准确的分词处理。中文与英文等拉丁语系的语言不同,它没有明确的词语分隔符(如空格),因此直接对中文进行全文匹配会导致词语的混淆和错误。
当涉及到中文分词器时,两个常用的选择是 Smart Chinese Analyzer(smartcn)和 IK Analyzer。
Smart Chinese Analyzer(smartcn):
Smart Chinese Analyzer 是 Elasticsearch 内置的中文分词器,它使用机器学习算法进行分词,并且适用于简体中文和繁体中文。
Smart Chinese Analyzer 的优点是易于使用,无需额外配置即可使用。它具有较高的分词准确性和召回率,适用于大多数中文文本的索引和搜索。
安装:
sh elasticsearch-plugin install analysis-smartcn
安装后重新启动ES
在创建索引时,可以将字段的分词器指定为 “smartcn”。
PUT /索引名 { "settings": { "analysis": { "analyzer": { "my_analyzer": { "type": "smartcn" } } } }, "mappings": { "properties": { "字段名": { "type": "text", "analyzer": "my_analyzer" } } } }
卸载:
sh elasticsearch-plugin remove analysis-smartcn
IK Analyzer:
IK Analyzer 是一个第三方的中文分词器,它基于开源项目 IK Analysis 进行开发。IK Analyzer 提供了细粒度的中文分词能力,支持词库扩展和自定义词典。
IK Analyzer 的优点是可以根据具体需求进行配置和定制,支持停用词过滤、同义词扩展等功能。它适用于对中文文本的更精确分词和分析需求。
在创建索引时,可以将字段的分词器指定为 “ik_max_word” 或 “ik_smart”。“ik_max_word” 会尽可能多地进行分词,而 “ik_smart” 则会更加智能地进行分词。
下载
https://github.com/medcl/elasticsearch-analysis-ik/releases
安装 解压安装到plugins⽬录
安装后重新启动
示例:
PUT /索引名 { "settings": { "analysis": { "analyzer": { "my_analyzer": { "type": "custom", "tokenizer": "ik_max_word" } } } }, "mappings": { "properties": { "字段名": { "type": "text", "analyzer": "my_analyzer" } } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。