本文首发于公众号:Hunter后端原文链接:es笔记四之中文分词插件安装与使用前面我们介绍的操作及演示都是基于英语单词的分词,但我们大部分使用的肯定都是中文,所以如果需要使用分词的操作肯定也是需要使用中分分词。这里我们介绍一下如何安装中文分词插件。在介绍安装之前,我们可以先来测试一下没有中文分词的分词效果,我们先来插入一条数据:PUT/exam/_doc/16{"name":"张三丰","address":"一个苹果"}如果是中文分词,我们可以想到'一个苹果'应该会被分为'一个'和'苹果'这两个词,但是默认的分词是无法这样分词的,我们可以尝试搜索一下:GET/exam/_search{"que
normalization:文档规范化先切词,然后规范化.规范化要规范哪些内容?大小写;标点符号;时态;复数;规范化主要是为了匹配更精准characterfilter:字符过滤器.标点符号分词之前的预处理,过滤无用字符HTMLStripCharacterFilter:html_strip参数:escaped_tags需要保留的html标签MappingCharacterFilter:typemappingPatternReplaceCharacterFilter:typepattern_replace>normalization通过分词器把单词分词然后规范化查看具体分词器效果```jsonG
目录1、IK分词器下载2、下载完毕后解压,放入到elasticsearch的plugins下即可 3、重启elasticsearch,可以看到ik分词器被加载了 4、也可以通过elasticsearch-plugin这个命令来查看加载进来的插件 5、使用kibana测试ik分词器6、扩展配置ik分词器词典6.1、进入到ik分词器的配置文件夹config下6.2、在当前目录下新建一个词典,my.dic(以.dic结尾,命名自己定义)6.3、打开IKAnalyzer.cfg.xml文件(ik分词器的配置文件)6.4、重启elasticsearch即可把自定义的词典加载进来6.5、重新使用kiban
提示:运行容器命令推荐使用单机多节点的命令执行,所需配置文件要提前准备1、拉取镜像dockerpullelasticsearch:7.13.42、创建挂载目录mkdir-p/docker/elasticsearch/{config,data,plugins,logs}3、需要准备elasticsearch.yml文件(下面是要修改该的内容)(这个配置为单机多节点配置,但是具体的配置不全,但可以使用,下面运行容器使用单机多节点命令)node.name:lingyunnetwork.host:0.0.0.0http.port:9200cluster.initial_master_nodes:["l
IK分词器我们在ES中最常用的中文分词器就是IK分词器,其项目地址为:https://github.com/medcl/elasticsearch-analysis-ik下载安装下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases下载时注意和es的版本对应,我们es版本为:8.6.2。所以我们下载elasticsearch-analysis-ik-8.6.2.zip解压包内容如下:在EShome/plugins目录下创建目录ik,并将我们下载下zip包解压到es_home/plugins/ik目录下重启ES服务使用IK
mysql一对多关系同步到es,刚好es需要的是一个字段对应逗号分割的值。这样就解决了mysql多表关联查询很慢的弊端。但是es中给如何把逗号分割的字符串做为查询条件呢,答案如下:先看一个简单的例子:添加一个逗号分词PUTinfo-flow-test4{"settings":{"analysis":{"analyzer":{"my_anal":{"type":"pattern","pattern":","}}}},"mappings":{"properties":{"id":{"type":"keyword"},"content_id":{"type":"long"},"content_typ
springboot集成elasticsearch启动服务端后,访问出现如下报错:org.elasticsearch.index.mapper.MapperParsingException:analyzer[ik_smart]notfoundforfield[name] atorg.elasticsearch.index.mapper.TypeParsers.parseAnalyzersAndTermVectors(TypeParsers.java:111)~[elasticsearch-6.4.3.jar:6.4.3] atorg.elasticsearch.index.mapper.Typ
一、_termvectors 1、查看文档中某一个字段的分词结果GET/{index}/{type}/{_id}/_termvectors?fields=[field]2、样例:text的值为:https://www.b4d99.com/html/202204/45672.htmlGEThttp://IP:POST/textcontent_2022/textcontent/20220422191235893045256250/_termvectors?fields=text得到的结果:"terms":{ "202204":{ "term_freq":1, "tokens":[ {
Es内置的分词器有standard、pattern、whitespace、stop等等;也可以下载ik插件,使用ik_smart和ik_max_word。网上也有很多相关文章,这里就不介绍了。我总结了一下SpringBoot自定义正则分词器的方法,其他的类似。1.首先创建一个setting.json文件,放到resources目录下,用于自定义分词器。配置文件名随意,我这里命名为settings.json,作用是将url中的.替换成- { "analysis":{ "analyzer":{ "url_analyzer":{ "tokenizer":"standard", "char_filte
@ES日志中报错plugin-descriptor.propertiesNoSuchFileException报错问题找不到这个文件plugin-descriptor.properties。`报错原因如下图所示,下载的zip文件解压之后的情况,这里是不能放到elasticsearch的plugins中的。分析:由于是java开发的分词器,这里很明显是maven项目的目录结构。所以要执行打包命令,生成对应的发布的包解决方法在你ES中存放中文分词器的ik目录下执行mvncleaninstall命令,完成后在你target目录下的release中会有以下包,这些才是我们所需要的,用这些去替换ik中的