ES默认提供了八种内置的analyzer,针对不同的场景可以使用不同的analyzer;

1、whitespace analyzer

1.1、whitespace类型及分词效果

whitespace analyzer在处理文本时以空格字符为区分进行分词,该分词器在中文分词上基本不被使用;

POST _analyze
{"analyzer": "whitespace","text": "How does this work?"
}//结果返回
{"tokens" : [{"token" : "How","start_offset" : 0,"end_offset" : 3,"type" : "word","position" : 0},{"token" : "does","start_offset" : 4,"end_offset" : 8,"type" : "word","position" : 1},{"token" : "this","start_offset" : 9,"end_offset" : 13,"type" : "word","position" : 2},{"token" : "work?","start_offset" : 14,"end_offset" : 19,"type" : "word","position" : 3}]
}

以上句子通过分词之后得到的关键词为:
[How, does, this, work?]

1.2、whitespace analyzer的组成定义

序号 子构件 构件说明
1 Tokenizer whitespace tokenizer

如果希望自定义一个与whitespace类似的analyzer,只需要在在自定义analyzer时指定type为whitesapce,其它的可以按照需要进行配置(char filter/filter),如下示例:

//自定义analyzer
PUT custom_rebuild_whitespace_analyzer_index
{"settings": {"analysis": {"analyzer": {"rebuild_wihtespace_analyzer":{"tokenizer":"whitespace","filter":[]}}}}
}//需要明确指定analyzer,否则默认为standard,返回结果与上面相同
POST custom_rebuild_whitespace_analyzer_index/_analyze
{"analyzer": "rebuild_wihtespace_analyzer", "text": "How does this work?"
}

2、stop analyzer

2.1、stop类型及分词效果

stop analyzer与simple analyzer功能一样,不同之处在于支持停用词,默认情况下使用_english_停用词;

POST _analyze
{"analyzer": "stop","text": "How does this work?"
}

以上句子通过分词之后得到的关键词为:
[How, does, work]

2.2、stop类型可配置参数

序号 参数 参数说明
1 stopwords 预定义的停用词类型,例如_english_,或者是包含停用词的数组结构,默认值为_english_;
2 stopwords_path 停用词文件路径;

自定义配置stopwords示例:

//analyzer参数设置
PUT custom_rebuild_stop_analyzer_index
{"settings": {"analysis": {"analyzer": {"rebuild_stop_analyzer":{"type":"stop","stopwords":["the","work"]}}}}
}//测试analyzer
POST custom_rebuild_stop_analyzer_index/_analyze
{"analyzer": "rebuild_stop_analyzer","text": "How does this work?"
}//结果返回
{"tokens" : [{"token" : "how","start_offset" : 0,"end_offset" : 3,"type" : "word","position" : 0},{"token" : "does","start_offset" : 4,"end_offset" : 8,"type" : "word","position" : 1},{"token" : "this","start_offset" : 9,"end_offset" : 13,"type" : "word","position" : 2}]
}

以上句子通过分词之后得到的关键词为:
[How, does, this]

2.3、stop analyzer的组成定义

序号 子构件 构件说明
1 Tokenizer lowercase tokenizer
2 Token filters stop token filter

如果希望自定义一个与stop类似的analyzer,只需要在在自定义analyzer时指定type为stop,其它的可以按照需要进行配置(char filter/filter),如下示例:

//自定义analyzer
PUT custom_stop_analyzer_conf_index
{"settings": {"analysis": {"analyzer": {"rebuild_stop_analyzer":{"tokenizer":"lowercase","filter":["english_stop"]}},"filter": {"english_stop":{"type":"stop","stopwords":"_english_"}}}}
}//测试analyzer
POST custom_stop_analyzer_conf_index/_analyze
{"analyzer": "rebuild_stop_analyzer","text": "How does this work?"
}//结果返回
{"tokens" : [{"token" : "how","start_offset" : 0,"end_offset" : 3,"type" : "word","position" : 0},{"token" : "does","start_offset" : 4,"end_offset" : 8,"type" : "word","position" : 1},{"token" : "work","start_offset" : 14,"end_offset" : 18,"type" : "word","position" : 3}]
}

以上句子通过分词之后得到的关键词为:
[How, does, this]

8.2.2-elasticsearch内置分词器之whitespace/stop相关推荐

  1. Elasticsearch 内置分词器

    Elasticsrarch 提供了8中内置分词器,它们可以无需任何配置即可使用.每一个分词器都由3部分组件组成:Character Filters.Tokenizer和Token Filters,这3 ...

  2. 二、ElasticSearch内置分词器

    这里讲解下常见的几个分词器:Standard Analyzer.Simple Analyzer.whitespace Analyzer. 1.Standard Analyzer(默认) 1)示例 st ...

  3. Elasticsearch Analyzer 内置分词器

    Elasticsearch Analyzer 内置分词器 篇主要介绍一下 Elasticsearch中 Analyzer 分词器的构成 和一些Es中内置的分词器 以及如何使用它们 前置知识 es 提供 ...

  4. Elasticsearch7 分词器(内置分词器和自定义分词器)

    文章目录 Elasticsearch7 分词器(内置分词器和自定义分词器) analysis 概览 char_filter html_strip mapping pattern_replace fil ...

  5. 架构师成长记_第八周_10_ES-分词与五种内置分词器

    文章目录 ES-分词 PS: 1. 全局分析方式(_analyze) 2. 指定字段分析方式(索引名/_analyze) ES-五种内置分词器介绍 1 标准分词器 standard 2 非字母分词器 ...

  6. elasticSearch 内置功能列表

    2019独角兽企业重金招聘Python工程师标准>>> 从名字可以看出来,`default`是索引和搜索时用的默认的analyzer,`default_index`是索引时用的默认的 ...

  7. Elasticsearch 内置分析器Analyzer

    java学习讨论群:725562382 无论是内置的分析器(analyzer),还是自定义的分析器(analyzer),都由三种构件块组成的:character filters , tokenizer ...

  8. Python 的内置容器之 list (列表) 详细指南!!

    python 的内置容器  :    有四个        list (列表)        set (集合)        tuple(元祖)           dict  (字典) list  ...

  9. python内置装饰器property_Python中的内置装饰器之property

    装饰器是Python中很重要的一个概念,但是这篇文档不介绍装饰器的实现,我们只需要知道装饰器可以实现一些功能: Python中也包含一些自带的装饰器,这次就说一下属性装饰器property 相关知识点 ...

最新文章

  1. 【怎样写代码】确保对象的唯一性 -- 单例模式(四):饿汉式单例类与懒汉式单例类的讨论
  2. 找到反例!博士后数学家推翻困扰数学界80多年的单位猜想
  3. [unreal4入门系列之十六] UE4中的集合:TSet容器
  4. 俄罗斯方块(结对作业)
  5. golang网站错误处理
  6. python内置对象的实现_Python 内置对象的实现
  7. Mybatis的第三章动态sql总结
  8. neo4j 两个点创建关系_Neo4j:找到两个纬度/经度之间的中间点
  9. [golang]如何看懂调用堆栈
  10. HMM学习笔记_3(从一个实例中学习Viterbi算法)
  11. linux客户端工具有哪些,Linux命令以及客户端工具的使用
  12. Docker制作深度学习镜像常用操作
  13. 华为防火墙IPSEC简单搭建
  14. 【参赛作品22】华为openGauss数据库行存储源代码解析
  15. 云服务器1M带宽表示什么意思,购买服务器时如何选择服务器带宽?
  16. 2021“西湖论剑“网络安全大赛Writeup
  17. 单表七千六百万数据量(oracle)进行实时汇总,sql很慢客户不能忍一下,该怎么办?
  18. 对自己狠一点-----胡言乱语
  19. Rosalind: DNA核苷酸计数和DNA翻译成RNA
  20. TI基于DSP+ARM的双核架构如何相互通信

热门文章

  1. IDEA搭建SSH框架
  2. 【PAT (Basic Level) Practice】——【简单数学】1088 三人行
  3. “成功学大师”杨涛鸣被抓
  4. 基本算法练习_日期倒计时
  5. awstats 配置
  6. tensorflow feature_column详解
  7. R中基本统计分析方法整理
  8. 电脑删除文件提示错误:0x80070091目录不是空的 无法删除的解决办法
  9. 内网穿透(natapp、续断、花生壳)
  10. github上标星70.5k,贼火的Java面试突击手册,不看就真的亏了