Elasticsearch分词原理与内置分析器解析
需积分: 10 121 浏览量
更新于2024-07-09
收藏 3.53MB PPTX 举报
"Elasticsearch分词.pptx 涉及到ES的分词原理、内置分词器以及它们的特性和使用示例。主要介绍了StandardAnalyzer、SimpleAnalyzer和WhitespaceAnalyzer三种分词器。"
在Elasticsearch (ES) 中,分词是构建高效全文搜索引擎的关键步骤,它涉及到将文本内容拆分成可搜索的独立单元,即词汇项。倒排索引,基于这些分词结果构建,使得快速匹配和检索成为可能。在ES中,分词过程分为两种类型:读时分词(query-time analysis)和写时分词(index-time analysis)。前者在用户查询时即时进行,后者在文档被索引时执行。
1. **读时分词**:当用户输入查询时,ES会实时对关键词进行分词,生成的分词仅存在于内存中,查询结束后随即消失。
2. **写时分词**:在文档写入ES时,文档内容会被分词并存储到倒排索引中,这些信息持久化在磁盘,不会因为查询结束或ES重启而丢失。
ES提供了多种内置分词器以适应不同的语言和场景需求:
- **StandardAnalyzer**:默认分词器,适用于多语言,会将词汇转换为小写,移除标点符号和停止词。其Tokenizer是StandardTokenizer,TokenFilters包括LowerCaseTokenFilter。
示例:
```
POST _analyze
{
"analyzer": "standard",
"text": "NanjingWanmiInformationTechnologyCo.,LTD"
}
```
输出:`"nanjingwanmiinformationtechnologycotld"`
- **SimpleAnalyzer**:简单分词器,以非字母字符作为分隔符,所有词汇转为小写。Tokenizer是LowerCaseTokenizer。
示例:
```
POST _analyze
{
"analyzer": "simple",
"text": "NanjingWanmi'sInformationTechnologyCo.,LTD"
}
```
输出:`"nanjingwanmisinformationtechnologycotld"`
- **WhitespaceAnalyzer**:以空白字符作为分隔符,不处理标点符号。这种分词器对于保持原始分隔符的场景很有用。
示例:
```
POST _analyze
{
"analyzer": "whitespace",
"text": "Hello, World!"
}
```
输出:`"Hello", "World!"`
选择合适的分词器对ES的搜索性能和准确度至关重要。例如,对于中文文档,可能需要使用专门为中文设计的分词器,如SmartChineseAnalyzer,它可以正确处理中文的词语边界。同时,自定义分词器和过滤器也可以通过配置来满足特定需求,如添加自定义停用词表,或者实现特定的分词逻辑。
Elasticsearch的分词机制是其强大搜索功能的基础,正确理解和使用分词器能够有效提升全文检索的质量和效率。开发者需要根据实际应用场景选择或定制合适的分词策略,以确保数据的索引和查询达到预期效果。
2020-05-20 上传
2021-11-26 上传
2021-08-16 上传
2021-12-18 上传
2021-10-15 上传
2021-10-10 上传
2021-10-07 上传
2021-10-07 上传
zwc4825
- 粉丝: 1
- 资源: 2
最新资源
- karabiner-for-filco-minila:Carabiner 的 private.xml,用于 filco minila
- Haskell:Haskell练习以配合“ Haskell编程”一书
- html上传图片js文件
- 补充:为SFU研究生准备的LaTeX课堂和模板
- VC++在MFC应用中打开PDF、Word文档文件
- 自用学习的项目.结合maven聚合,redis,mysql主从复制,dubbo,以及一系列该并发的前沿技术的项目.zip
- Hadoop-2.8.0-Day11-App数据分析与日活跃用户统计-课件与资料.zip
- feedhenry-cordova-sync-app:使用FeedHenry同步框架的示例cordova应用程序
- 按键控制MG 996R电机.zip
- Timer:带有小型项目的存储库
- 更新
- 自己学习使用servlet显示登录并验证登录信息页面,在mysql数据库中增删改查数据并显示到网页.zip
- radshiny:用于创建多页闪亮应用程序的简单 R 包
- Minecraft-Toolbox
- Python HTML Calendar Generator:命令行HTML日历生成器。-开源
- 最新版windows jdk-8u331-windows-x64.zip