Elasticsearch-68-深入聚合分析数据I 发表于 2019-01-07 | 分类于 Elasticsearch 背景本文,将以一个家电卖场中的电视销售数据为背景,进行各种各样角度的聚合分析 准备数据创建索引tvs123456789101112131415161718192021PUT /tvs{ "mappings": { "sales": & ... 阅读全文 »
Elasticsearch-67-聚合分析bucket和metric 发表于 2019-01-07 | 分类于 Elasticsearch 核心概念bucket是一个数据的分组,metric就是对一个bucket执行的某种聚合分析的操作,比如说,求平均值,最大值,最小值等 举个例子,有这么一组数据 city name 北京 小李 北京 小王 上海 小张 上海 小丽 上海 小陈 上面的数据可以通 ... 阅读全文 »
Elasticsearch-66-修改IK分词器源码基于mysql热更新词库 发表于 2019-01-05 | 分类于 Elasticsearch 上文中,我们如果要配置一个自定义的词语,或者停用词的时候,必须要手动添加到ik分词器的配置中,然后重启es节点,这样就很坑了,而且如果es集群中有上百个节点的话,那一个个的修改要疯了 通过修改ik分词器的源码,可以使用mysql作为词库,有词语更新的话,直接添加到mysql的表中就好了,不需要 ... 阅读全文 »
Elasticsearch-65-IK分词器配置文件详解 发表于 2019-01-05 | 分类于 Elasticsearch ik配置文件ik配置文件地址: es目录/plugins/ik/config main.dic:ik原生内置的中文词库,总共有27万多条,只要是这些单词,都会被分在一起 quantifier.dic:放了一些单位相关的词 suffix.dic:放了一些后缀 surname.dic:中 ... 阅读全文 »
Elasticsearch-64-IK中文分词器的安装和基本使用 发表于 2019-01-04 | 分类于 Elasticsearch ik中文分词器安装从github上拉取ik分词器1git clone https://github.com/medcl/elasticsearch-analysis-ik 切换分支1git checkout tags/v5.2.0 编译1mvn package 将target/releases/el ... 阅读全文 »
Elasticsearch-63-误拼写时的fuzzy模糊搜索 发表于 2019-01-04 | 分类于 Elasticsearch fuzzy搜索我们在搜索的时候,可能会出现单词误拼写的情况,举个例子,有两个documentdocument1: hello worlddocument2: hello java这时候搜索请求误写成了hallo world, 我们期望的结果是全查询出来,但是hallo world是匹配不上doc2的 ... 阅读全文 »
Elasticsearch-62-用function_score自定义相关度分数算法 发表于 2019-01-04 | 分类于 Elasticsearch function_score我们可以自定义一个function_score函数,自己将某个field的值,跟es内置算出来的分数进行运算,然后由自己制定的field来进行分数的增强 准备测试数据给所有帖子增加follower数量1234567891011POST /forum/article/ ... 阅读全文 »
Elasticsearch-61-常见相关度分数优化方法 发表于 2019-01-03 | 分类于 Elasticsearch 上文中,说了整个es的相关度评分的算法,本文将使用四种常见的方法来优化相关度分数 query-time boost就是之前说过的给某一个查询增加权重,语法如下12345678910111213141516171819202122GET forum/article/_search{ & ... 阅读全文 »
Elasticsearch-60-深入揭秘lucene的相关度分数算法 发表于 2019-01-03 | 分类于 Elasticsearch 上文中说了TF/IDF算法,那么在底层的Lucene中TF/IDF算法的完整的公式是什么 Boolean model就是我们之前有说过的,一个match会被转换为bool的组合查询,比如说123"match":{ "query":" ... 阅读全文 »
Elasticsearch-59-深入揭秘TF&IDF算法以及向量空间模型算法 发表于 2019-01-03 | 分类于 Elasticsearch 一个搜索请求过来,是怎样进行打分的呢 boolean model首先一个搜索请求过来的时候,会先进行过滤,过滤出包含指定term的doc,这个过程就是boolean model 举个例子,查询的是hello world,首先会先过滤出来包含hello和包含world和包含hello w ... 阅读全文 »