ES自定义分词器

es的分词器往往包括3个低级构建块包:

  • character filters - 字符过滤器,可以添加、删除或更改字符来转换流,一个分析器可有多个字符过滤器;
  • token filters - token过滤器,接受token流,并可以添加、删除或修改token,不允许更改每个token的位置或字符偏移量,一个分析器可有多个token过滤器,并按顺序应用。
  • tokenizer - 标记器,接受字符流,将其分解成单独的标记,并输出标记流,一个分析器只能有一个标记器

Elasticsearch提供的内置analyzers

Standard Analyzer
标准分析仪按照Unicode文本分段算法的定义,将文本分割成单词边界的分词。它删除了大多数标点符号,小写显示分词,并支持删除stop words。

Simple Analyzer
当遇到不是字母的字符时,简单的分析器会将文本分成条目。小写显示分词。

Whitespace Analyzer
空格分析器遇到任何空格字符时都会将文本分为多个项目。不会把分词转换为小写字母。

Stop Analyzer
停止分析仪和Simple Analyzer类似,但也支持stop words的删除。

Keyword Analyzer
一个“noop”分析器,它可以接受任何给定的文本,并输出完全相同的文本作为一个单词。

Pattern Analyzer
使用正则表达式拆分分词,支持lower-casing和stop words。

Language Analyzers
Elasticsearch提供许多语言特定的分析器,如英语或法语。

Fingerprint Analyzer
一个专门的分析仪,它可以创建一个可用于重复检测的指纹。

https://www.jianshu.com/p/13112fe5eaad

实战

对中文文本以英文逗号作为分隔符分词:

"这里有,最棒的ACG氛围,最有创意的Up主"

将分析器设置到索引上

PUT my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "type": "simple"
        }
      }
    }
  }
}

获取分词结果

POST my_index/_analyze
{
  "analyzer": "my_analyzer",
  "text": "这里有,最棒的ACG氛围,最有创意的Up主"
}

https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-stop-analyzer.html

注意

es 节点层面的默认分词设置已经废弃,不支持了。就是说在elasticsearch.yml配置诸如:

index:
  analysis:                  
    analyzer:
      simple_analyzer:
        type: simple

无效,会导致es启动失败:

********************************************************************************
*****
Found index level settings on node level configuration.

Since elasticsearch 5.x index level settings can NOT be set on the nodes
configuration like the elasticsearch.yaml, in system properties or command line

arguments.In order to upgrade all indices the settings must be updated via the
/${index}/_settings API. Unless all settings are dynamic all indices must be clo
sed
in order to apply the upgradeIndices created in the future should use index temp
lates
to set default values.

推荐在索引层面动态设置。
https://blog.csdn.net/yu280265067/article/details/71107658

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,288评论 19 139
  • es的分析器往往包括3个低级构建块包: character filters - 字符过滤器,可以添加、删除或更改字...
    Ksewen阅读 2,859评论 0 0
  • 1 俗话说大隐隐于市,小隐隐于山。要想逃过世俗的烦扰,林独醒就必须隐居起来,林独醒想要大隐,所以林独醒得混进世俗当...
    扣子大扣子阅读 418评论 0 0
  • 2019白手起家的创业好项目,穷人创业首选 1、小吃车项目 正所谓民以食为天,小本生意创业可以从饮食方面入手。小吃...
    西方衲子阅读 1,110评论 0 1