5月29
elasticsearch的分词器对于文本分析至关重要。对于中文等语言,合适的分词器可以显著提高搜索相关性和结果的准确性。拼音分词器不仅支持基于拼音的搜索,还能实现拼音自动补全等功能。本文将介绍如何在Elasticsearch中安装拼音分词器,以及如何配置和测试它。
分词器的三要素
在Elasticsearch中,分词器(Analyzer)由以下三个主要部分组成:
Character Filters(字符过滤器):在Tokenizer处理之前对文本进行预处理,如删除或替换特定字符。
Tokenizer(分词器):按照一定的规则将文本切分成词条(Term),例如ik_max_word就是智能切分中文。
Token Filters(词条过滤器):对Tokenizer输出的词条进行进一步处理,如转换为小写、同义词替换、拼音转换等。
安装拼音分词器插件
步骤1:下载插件
访问elasticsearch-analysis-pinyin 下载页面,下载与您的Elasticsearch版本相匹配的插件。
步骤2:上传插件
将下载的插件压缩包上传到Elasticsearch的plugins目录。
步骤3:检查插件列表
curl -XGET "http://localhost:9200/_cat/plugins?v"
预期输出:
name component version
node-master analysis-pinyin 7.17.6
包含 analysis-pinyin 插件。
步骤4:测试插件
curl -XPOST "http://localhost:9200/_analyze" -H "Content-Type: application/json" -d'
{
"analyzer": "pinyin",
"text": "姜军"
}'
预期输出:
{
"tokens": [
{ "token": "a", "position": 0 },
{ "token": "li", "position": 1 },
{ "token": "ba", "position": 2 },
{ "token": "ba", "position": 3 }
]
}
Easy-Es 中使用 pinyin 分词器
确保实体类中正确引用 Analyzer.PINYIN:
@IndexField(
fieldType = FieldType.TEXT,
analyzer = Analyzer.PINYIN,
searchAnalyzer = Analyzer.PINYIN,
fieldData = true
)
private String name;
来源:Heck's Blog
地址:https://www.heckjj.com/post/673/
转载时须以链接形式注明作者和原始出处及本声明,否则将追究法律责任,谢谢配合!
分词器的三要素
在Elasticsearch中,分词器(Analyzer)由以下三个主要部分组成:
Character Filters(字符过滤器):在Tokenizer处理之前对文本进行预处理,如删除或替换特定字符。
Tokenizer(分词器):按照一定的规则将文本切分成词条(Term),例如ik_max_word就是智能切分中文。
Token Filters(词条过滤器):对Tokenizer输出的词条进行进一步处理,如转换为小写、同义词替换、拼音转换等。
安装拼音分词器插件
步骤1:下载插件
访问elasticsearch-analysis-pinyin 下载页面,下载与您的Elasticsearch版本相匹配的插件。
步骤2:上传插件
将下载的插件压缩包上传到Elasticsearch的plugins目录。
步骤3:检查插件列表
curl -XGET "http://localhost:9200/_cat/plugins?v"
预期输出:
name component version
node-master analysis-pinyin 7.17.6
包含 analysis-pinyin 插件。
步骤4:测试插件
curl -XPOST "http://localhost:9200/_analyze" -H "Content-Type: application/json" -d'
{
"analyzer": "pinyin",
"text": "姜军"
}'
预期输出:
{
"tokens": [
{ "token": "a", "position": 0 },
{ "token": "li", "position": 1 },
{ "token": "ba", "position": 2 },
{ "token": "ba", "position": 3 }
]
}
Easy-Es 中使用 pinyin 分词器
确保实体类中正确引用 Analyzer.PINYIN:
@IndexField(
fieldType = FieldType.TEXT,
analyzer = Analyzer.PINYIN,
searchAnalyzer = Analyzer.PINYIN,
fieldData = true
)
private String name;
来源:Heck's Blog
地址:https://www.heckjj.com/post/673/
转载时须以链接形式注明作者和原始出处及本声明,否则将追究法律责任,谢谢配合!
Win11启用Telne
一文搞懂Fine-tun



