ES自定义分词器

ES自定义分词器,第1张

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

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

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

将分析器设置到索引上

获取分词结果

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

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

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

推荐在索引层面动态设置。

https://blog.csdn.net/yu280265067/article/details/71107658

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

2.1点击红色边框->点击Edit Configuration->点击左上角绿色的+号->remote

2.2 然后填入下图的内容, host为远程的主机ip,我这儿填写的是es集群机器ip,host端口随便填写一个,只要该端口未被占用即可。

2.3 配置es中的jvm,在jvm.options的结尾加上图2生成的

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5000

2.4 然后本地分词器打上断点,给es的设置了分析器的字段推上数据,然后就可以进入到本地的分词器中。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11211618.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存