8.2.2-elasticsearch内置分词器之whitespace/stop
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相关推荐
- Elasticsearch 内置分词器
Elasticsrarch 提供了8中内置分词器,它们可以无需任何配置即可使用.每一个分词器都由3部分组件组成:Character Filters.Tokenizer和Token Filters,这3 ...
- 二、ElasticSearch内置分词器
这里讲解下常见的几个分词器:Standard Analyzer.Simple Analyzer.whitespace Analyzer. 1.Standard Analyzer(默认) 1)示例 st ...
- Elasticsearch Analyzer 内置分词器
Elasticsearch Analyzer 内置分词器 篇主要介绍一下 Elasticsearch中 Analyzer 分词器的构成 和一些Es中内置的分词器 以及如何使用它们 前置知识 es 提供 ...
- Elasticsearch7 分词器(内置分词器和自定义分词器)
文章目录 Elasticsearch7 分词器(内置分词器和自定义分词器) analysis 概览 char_filter html_strip mapping pattern_replace fil ...
- 架构师成长记_第八周_10_ES-分词与五种内置分词器
文章目录 ES-分词 PS: 1. 全局分析方式(_analyze) 2. 指定字段分析方式(索引名/_analyze) ES-五种内置分词器介绍 1 标准分词器 standard 2 非字母分词器 ...
- elasticSearch 内置功能列表
2019独角兽企业重金招聘Python工程师标准>>> 从名字可以看出来,`default`是索引和搜索时用的默认的analyzer,`default_index`是索引时用的默认的 ...
- Elasticsearch 内置分析器Analyzer
java学习讨论群:725562382 无论是内置的分析器(analyzer),还是自定义的分析器(analyzer),都由三种构件块组成的:character filters , tokenizer ...
- Python 的内置容器之 list (列表) 详细指南!!
python 的内置容器 : 有四个 list (列表) set (集合) tuple(元祖) dict (字典) list ...
- python内置装饰器property_Python中的内置装饰器之property
装饰器是Python中很重要的一个概念,但是这篇文档不介绍装饰器的实现,我们只需要知道装饰器可以实现一些功能: Python中也包含一些自带的装饰器,这次就说一下属性装饰器property 相关知识点 ...
最新文章
- 【怎样写代码】确保对象的唯一性 -- 单例模式(四):饿汉式单例类与懒汉式单例类的讨论
- 找到反例!博士后数学家推翻困扰数学界80多年的单位猜想
- [unreal4入门系列之十六] UE4中的集合:TSet容器
- 俄罗斯方块(结对作业)
- golang网站错误处理
- python内置对象的实现_Python 内置对象的实现
- Mybatis的第三章动态sql总结
- neo4j 两个点创建关系_Neo4j:找到两个纬度/经度之间的中间点
- [golang]如何看懂调用堆栈
- HMM学习笔记_3(从一个实例中学习Viterbi算法)
- linux客户端工具有哪些,Linux命令以及客户端工具的使用
- Docker制作深度学习镜像常用操作
- 华为防火墙IPSEC简单搭建
- 【参赛作品22】华为openGauss数据库行存储源代码解析
- 云服务器1M带宽表示什么意思,购买服务器时如何选择服务器带宽?
- 2021“西湖论剑“网络安全大赛Writeup
- 单表七千六百万数据量(oracle)进行实时汇总,sql很慢客户不能忍一下,该怎么办?
- 对自己狠一点-----胡言乱语
- Rosalind: DNA核苷酸计数和DNA翻译成RNA
- TI基于DSP+ARM的双核架构如何相互通信