`
m635674608
  • 浏览: 5031758 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

ES中的分词器

 
阅读更多

一、概念介绍

    全文搜索引擎会用某种算法对要建索引的文档进行分析, 从文档中提取出若干Token(词元), 这些算法称为Tokenizer(分词器), 这些Token会被进一步处理, 比如转成小写等, 这些处理算法被称为Token Filter(词元处理器), 被处理后的结果被称为Term(词), 文档中包含了几个这样的Term被称为Frequency(词频)。 引擎会建立Term和原文档的Inverted Index(倒排索引), 这样就能根据Term很快到找到源文档了。 文本被Tokenizer处理前可能要做一些预处理, 比如去掉里面的HTML标记, 这些处理的算法被称为Character Filter(字符过滤器), 这整个的分析算法被称为Analyzer(分析器)

整个分析过程,如下图所示:

二、ES中的分词器

       从第一部分内容可以看出:Analyzer(分析器)由Tokenizer(分词器)和Filter(过滤器)组成。

       1、ES内置分析器              

analyzer logical name description
standard analyzer standard standard tokenizer, standard filter, lower case filter, stop filter
simple analyzer simple lower case tokenizer
stop analyzer stop lower case tokenizer, stop filter
keyword analyzer keyword 不分词,内容整体作为一个token(not_analyzed)
pattern analyzer whitespace 正则表达式分词,默认匹配\W+
language analyzers lang 各种语言
snowball analyzer snowball standard tokenizer, standard filter, lower case filter, stop filter, snowball filter
custom analyzer custom 一个Tokenizer, 零个或多个Token Filter, 零个或多个Char Filter

 

       2、ES内置分词器

tokenizer logical name description
standard tokenizer standard  
edge ngram tokenizer edgeNGram  
keyword tokenizer keyword 不分词
letter analyzer letter 按单词分
lowercase analyzer lowercase letter tokenizer, lower case filter
ngram analyzers nGram  
whitespace analyzer whitespace 以空格为分隔符拆分
pattern analyzer pattern 定义分隔符的正则表达式
uax email url analyzer uax_url_email 不拆分url和email
path hierarchy analyzer path_hierarchy 处理类似/path/to/somthing样式的字符串

 

       3、ES内置过滤器

        (1)ES内置的token filter

token filter logical name description
standard filter standard  
ascii folding filter asciifolding  
length filter length 去掉太长或者太短的
lowercase filter lowercase 转成小写
ngram filter nGram  
edge ngram filter edgeNGram  
porter stem filter porterStem 波特词干算法
shingle filter shingle 定义分隔符的正则表达式
stop filter stop 移除 stop words
word delimiter filter word_delimiter 将一个单词再拆成子分词
stemmer token filter stemmer  
stemmer override filter stemmer_override  
keyword marker filter keyword_marker  
keyword repeat filter keyword_repeat  
kstem filter kstem  
snowball filter snowball  
phonetic filter phonetic 插件
synonym filter synonyms 处理同义词
compound word filter dictionary_decompounder, hyphenation_decompounder 分解复合词
reverse filter reverse 反转字符串
elision filter elision 去掉缩略语
truncate filter truncate 截断字符串
unique filter unique  
pattern capture filter pattern_capture  
pattern replace filte pattern_replace 用正则表达式替换
trim filter trim 去掉空格
limit token count filter limit 限制token数量
hunspell filter hunspell 拼写检查
common grams filter common_grams  
normalization filter arabic_normalization, persian_normalization  

         (2)ES内置的character filter   

character filter logical name description
mapping char filter mapping 根据配置的映射关系替换字符
html strip char filter html_strip 去掉HTML元素
pattern replace char filter pattern_replace 用正则表达式处理字符串

 

        4、自定义分析器

       ES允许用户通过配置文件elasticsearch.yml自定义分析器Analyzer,如下:

       index:

              analysis:

                     analyzer:

                            myAnalyzer:

                                   tokenizer: standard

                                  filter: [standard, lowercase, stop]

       上面配置信息注册了一个分析器myAnalyzer,在次注册了之后可以在索引或者查询的时候直接使用。该分析器的功能和标准分析器差不多,tokenizer: standard,使用了标准分词器 ;filter: [standard, lowercase, stop],使用了标准过滤器、转小写过滤器和停用词过滤器。

 

       也可以使用第三方分析器,比如IKAnalyzer,详情请参考ElasticSearch安装ik分词插件

 

http://my.oschina.net/xiaohui249/blog/260993

分享到:
评论

相关推荐

    elasticsearch 中文分词器ik

    **Elasticsearch中文分词器IK** Elasticsearch(ES)是流行的全文搜索引擎,它基于Lucene库构建,提供了一个分布式、RESTful风格的搜索和分析引擎服务。然而,对于中文这种复杂的语言,Elasticsearch默认的分词器...

    elasticsearch中文分词器

    elasticsearch中文分词器

    es中文分词器ik

    本文将深入探讨Elasticsearch中的IK分词器,它是一款专门为ES设计的、性能出色的中文分词工具。 **IK分词器简介** IK(Intelligent Chinese)分词器是开源的Java实现的中文分词库,最初由刘海洋创建,后由Wang ...

    elasticsearch-ik中文分词器7.6.2.zip

    在Elasticsearch中使用IK分词器,首先需要将"elasticsearch-analysis-ik-7.6.2.jar"文件放到Elasticsearch的plugins目录下。然后,通过Elasticsearch的命令行工具或配置文件启用插件。配置通常涉及以下步骤: 1. ...

    es中文分词器 ik分词器.zip

    ** Elasticsearch (ES) 中文分词器:IK 分词器详解 ** Elasticsearch(ES)作为一款强大的全文搜索引擎,其内置的分词器在处理英文文本时表现出色,但在处理中文这种复杂的语言结构时,可能无法满足需求。为了解决...

    Elasticsearch的开源中文分词器 IK Analysis.zip

    IK中文分词器在Elasticsearch上的使用。原生IK中文分词是从文件系统中读取词典,es-ik本身可扩展成从不同的源读取词典。目前提供从sqlite3数据库中读取。es-ik-plugin-sqlite3使用方法: 1. 在elasticsearch.yml中...

    elasticsearch-analysis-pinyin-7.4.0 es拼音分词器7.4.0

    《Elasticsearch拼音分词器7.4.0在大数据全文检索中的应用》 Elasticsearch(简称ES)是一款强大的开源搜索引擎,广泛应用于大数据领域的全文检索。它以其高可扩展性、实时性能以及丰富的分析能力著称。在中文环境...

    elasticsearch ik 分词器 zip

    elasticsearch ik 分词器 zip elasticsearch ik 分词器 zip elasticsearch ik 分词器 zip elasticsearch ik 分词器 zip elasticsearch ik 分词器 zip elasticsearch ik 分词器 zip elasticsearch ik 分词器 zip ...

    elasticserach 7.17.4版本的中文 IK分词器

    **Elasticsearch 7.17.4 版本中的中文 IK 分词器** Elasticsearch 是一个流行的、开源的全文搜索引擎,它基于 Lucene 库,并提供了分布式、实时、可扩展的搜索和分析功能。在处理中文文本时,一个合适的分词器是至...

    ik分词器tar包 7.10.2

    4. **配置与测试**:在Elasticsearch的配置文件`elasticsearch.yml`中设置分词器,然后通过Elasticsearch的分析器接口进行测试,验证分词效果。 **应用场景** IK分词器广泛应用于电商、新闻、社交媒体等领域,帮助...

    elasticsearch-analysis-ik 7.10.0 分词器

    将 IK 分词器集成到 Elasticsearch 中,Elasticsearch-analysis-ik 插件具备以下特性: 1. **无缝集成**:与 Elasticsearch API 完美融合,安装后即可使用。 2. **配置灵活**:支持通过配置文件调整分词策略,如...

    es安装ik分词器

    它提供了多种内置分词器来处理文本数据,但在实际应用过程中,由于中文语言的复杂性,Elasticsearch 默认提供的分词器往往不能很好地满足中文分词的需求。因此,通常需要安装第三方的中文分词器插件来提高中文处理...

    elasticsearch的ik中文分词器

    **Elasticsearch与IK中文分词器** Elasticsearch(ES)是一款强大的开源搜索引擎,它基于Lucene构建,提供实时、分布式、可扩展的搜索和分析能力。在处理中文文档时,由于中文句子中词语之间没有明显的分隔符,因此...

    es7.0 ik的分词器

    **Elasticsearch分词器** 在Elasticsearch中,分词器(Analyzer)是将输入文本转换为可被搜索的Token流的关键组件。默认的分词器可能不适用于所有语言,尤其是中文这种有着独特分词规则的语言。因此,为了实现有效...

    7.17.1系列Elasticsearch的elasticsearch-analysis-ik分词器

    elasticsearch-analysis-ik 是一个常用的中文分词器,在 Elasticsearch 中广泛应用于中文文本的分析和搜索。下面是 elasticsearch-analysis-ik 分词器的几个主要特点: 中文分词:elasticsearch-analysis-ik 是基于...

    elasticsearch拼音分词器

    Elasticsearch(简称ES)作为一个强大的全文搜索引擎,提供了多种分词器,其中包括针对中文环境的拼音分词器。本文将深入探讨Elasticsearch中的拼音分词器及其用法。 ### 1. Elasticsearch与分词器 Elasticsearch ...

    elasticsearch-7.0.0 版本 ik 中文分词器

    要在 Elasticsearch 7.0.0 中使用 IK 分词器,首先需要将分词器的插件包下载并安装到 Elasticsearch 的 plugins 目录下。在提供的压缩包中,包含了编译好的 IK 插件,可以直接使用,无需自行编译。 2. **配置IK...

    elasticsearch-7.14.0+分词器+head插件一键下载

    分词器在 Elasticsearch 中扮演着核心角色,因为它们负责将输入的文本分解为可索引的单元——词语。Elasticsearch 内置了多种分词器,如标准分词器(Standard Analyzer)、关键词分词器(Keyword Analyzer)和中文...

    IK分词器elasticsearch-analysis-ik-7.17.16

    在Elasticsearch中,分词器的作用至关重要,它负责将用户输入的文本进行词汇切分,以便进行后续的搜索和分析操作。IK分词器以其高效、灵活和全面的特性,被广泛应用于Elasticsearch的中文处理场景。 **版本信息** ...

    ElasticSearch 重写IK分词器源码设置mysql热词更新词库1

    在本文中,我们将探讨如何利用Elasticsearch的IK分词器并对其进行源码改造,以实现热词库的动态更新,特别是通过MySQL数据库进行热词和停用词的定时更新。首先,我们要了解IK分词器的几种常用词库配置方式。 **0. ...

Global site tag (gtag.js) - Google Analytics