Elasticsearch 中文搜索时遇到几个问题: 当搜索关键词如:“人民币”时,如果分词将“人民币”分成“人”,“民”,“币”三个单字,那么搜索该关键词会匹配到很多包含该单字的无关内容,但是如果将该词分词成一个整词“人民币”,搜索单字如“人”字又不会匹配到包含“人民币”关键词的内容,怎么解决这个问题,既保证覆盖度又保证准确度? 搜索“RMB”时只会匹配到包含“RMB”关键词的内容,实际上,“RMB”和“人民币”是同义词,我们希望用户搜索“RMB”和“人民币”可以相互匹配,ES同义词怎么配置?…
中文分词器 在lunix下执行下列命令,可以看到本来应该按照中文”北京大学”来查询结果es将其分拆为”北”,”京”,”大”,”学”四个汉字,这显然不符合我的预期.这是因为Es默认的是英文分词器我需要为其配置中文分词器. curlHTTP://192.168.79.131:9200/shb01/_analyze?pretty=true -d'{"text":"北京大学"}' Es整合ik不直接用ik官网的工具包,需要将ik工具包封装成es插件才行,这个已经有人封装好了…
安装 方法1 - download pre-build package from here: https://github.com/medcl/elasticsearch-analysis-ik/releases 创建文件夹 cd your-es-root/plugins/ && mkdir ik 解压到你的文件夹 your-es-root/plugins/ik 方法2 - use elasticsearch-plugin to install ( supported from versi…
ElasticSearch(三):通过分词器(Analyzer)进行分词(Analysis) 学习课程链接<Elasticsearch核心技术与实战> Analysis与Analyzer Analysis文本分析就是把全文转换成一系列单词的过程,也叫做分词. Analysis是通过Analyzer来实现的,它是专门处理分词的组件.可以使用ElasticSearch内置的分词器,也可以按需定制化分词器. 除了在数据写入时用分词器转换词条,在匹配查询语句时,也需要用相同的分词器对查询语句进行分析.…
Elasticsearch 系列回来了,先给因为这个系列关注我的同学说声抱歉,拖了这么久才回来,这个系列虽然叫「Elasticsearch 从入门到放弃」,但只有三篇就放弃还是有点过分的,所以还是回来继续更新. 之前我们聊过了Elasticsearch 的索引和文档,不太熟悉的话可以先翻阅一下前文.今天再一起聊一下 Elasticsearch 的分词器. 关于分词 如果你是讲 Elasticsearch 作为搜索引擎,那么你应该需要对分词进行了解,Elasticsearch 的分词是将全文本转换…
正向索引 正排表是以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档. 这种组织方法在建立索引的时候结构比较简单,建立比较方便且易于维护;因为索引是基于文档建立的,若是有新的文档加入,直接为该文档建立一个新的索引块,挂接在原来索引文件的后面.若是有文档删除,则直接找到该文档号文档对应的索引信息,将其直接删除.但是在查询的时候需对所有的文档进行扫描以确保没有遗漏,这样就使得检索时间大大延长,检索效率低下. 尽管正排表的工作原理非常…
起因 需要在ES中使用聚合进行统计分析,但是聚合字段值为中文,ES的默认分词器对于中文支持非常不友好:会把完整的中文词语拆分为一系列独立的汉字进行聚合,显然这并不是我的初衷.我们来看个实例: POST http://192.168.80.133:9200/my_index_name/my_type_name/_search { "size": 0, "query" : { "range" : { "time": { "…
前提 什么是倒排索引? Elasticsearch之分词器的作用 Elasticsearch之分词器的工作流程 Elasticsearch之停用词 Elasticsearch之中文分词器 Elasticsearch的几个重要的分词器: 后续博客 Elasticsearch之中文分词器插件es-ik…
之前我们创建索引,查询数据,都是使用的默认的分词器,分词效果不太理想,会把text的字段分成一个一个汉字,然后搜索的时候也会把搜索的句子进行分词,所以这里就需要更加智能的分词器IK分词器了. 1. ik分词器的下载和安装,测试 第一: 下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases ,这里你需要根据你的Es的版本来下载对应版本的IK,这里我使用的是6.3.2的ES,所以就下载ik-6.3.2.zip的文件. 第二:…
1 Lucene简介 Lucene是apache下的一个开源的全文检索引擎工具包. 1.1 全文检索(Full-text Search)  1.1.1 定义 全文检索就是先分词创建索引,再执行搜索的过程. 分词:就是将一段文字分成一个个单词 全文检索就将一段文字分成一个个单词去查询数据!!! 1.1.2 应用场景 1.1.2.1 搜索引擎(了解) 搜索引擎是一个基于全文检索.能独立运行.提供搜索服务的软件系统. 1.1.2.2 电商站内搜索(重点) 思考:电商网站内,我们都是通过输入关键词来搜索…