ES集群如何添加自定义拼音分词器教程

版权申诉
0 下载量 22 浏览量 更新于2024-08-04 收藏 2KB MD 举报
在Elasticsearch(ES)集群中,添加拼音分词器是一个常见的需求,特别是在处理中文文本搜索时,能够提高对汉字的搜索准确性和用户体验。在这个文档中,我们看到一个关于如何在ES 9200端口的`http://192.168.1.7:9200`上配置一个名为"Haoke"的索引的示例。主要涉及以下几个关键知识点: 1. **索引设置(Index Settings)**: - `number_of_shards`和`number_of_replicas`:这是ES中用于数据分布和冗余备份的参数。`number_of_shards`定义了索引被分割成多少个独立部分,`number_of_replicas`指定了每个shard的备份数量。 - **分析器(Analyzer)**:`pinyin_analyzer`是一个自定义的分词器,它基于`my_pinyin` tokenizer。这表明将使用这个特定的tokenizer来处理中文文本,将其转换为拼音进行搜索。 2. **Tokenizer(分词器)**: - `my_pinyin` tokenizer类型为`pinyin`,这是Elasticsearch内置的一种将汉字转换为拼音的tokenizer。其参数包括: - `keep_separate_first_letter`: 设置是否保留每个词的第一个字母,如不设置则会被拼接。 - `keep_full_pinyin`: 保留完整的拼音,即使有些拼音可能由多个字符组成。 - `keep_original`: 保留原始的汉字形式,与拼音同时存在。 - `limit_first_letter_length`: 设置第一个字母的最大长度。 - `lowercase`: 是否将所有拼音转换为小写。 - `remove_duplicated_term`: 删除重复的词项,以减少索引大小。 3. **映射(Mappings)**: - 对于索引中的`house`文档类型,有以下几个字段: - `title`:一个文本类型的字段,使用`ik_max_word`分析器进行普通搜索,同时定义了一个名为`pinyin`的子字段,用于拼音搜索,使用`pinyin_analyzer`。 - 其他字段如`image`, `orientation`, `houseType`, `rentMethod`, `time`, `rent`, 和 `floor`,它们都是`keyword`类型,常用于存储不可分割的关键词或标识符,这些字段的`index`参数设置为`false`,表示它们不参与索引,仅用于检索。 这份文档提供了在ES集群中如何通过自定义分析器和tokenizer实现中文拼音搜索的一个实例。这对于在处理中文内容时,提升搜索结果的准确性以及适应本地化需求非常有帮助。通过调整tokenizer的参数,可以根据实际场景优化拼音转换和分词策略。