Elasticsearch多shard场景下relevance score不准确问题

1、多shard场景下relevance score不准确问题大揭秘 如果你的一个index有多个shard的话,可能搜索结果会不准确 图解 2、如何解决该问题? (1)生产环境下,数据量大,尽可能实现均匀分配 数据量很大的话,其实一般情况下,在概率学的背景下,es都是在多个shar...

2018-12-02 17:48:59

阅读数:19

评论数:0

Elastic的segment merge操作

每秒一个segment file,文件过多,而且每次search都要搜索所有的segment,很耗时 默认会在后台执行segment merge操作,在merge的时候,被标记为deleted的document也会被彻底物理删除 每次merge操作的执行流程 (1)选择一些有相似大小的seg...

2018-12-01 09:42:51

阅读数:34

评论数:0

Elasticsearch的写入优化

再次优化的写入流程 (1)数据写入buffer缓冲和translog日志文件 (2)每隔一秒钟,buffer中的数据被写入新的segment file,并进入os cache,此时segment被打开并供search使用 (3)buffer被清空 (4)重复1~3,新的segment不断添加,b...

2018-11-29 22:30:18

阅读数:19

评论数:0

Elasticsearch的NRT优化,近实时查询

现有流程的问题,每次都必须等待fsync将segment刷入磁盘,才能将segment打开供search使用,这样的话,从一个document写入,到它可以被搜索,可能会超过1分钟!!!这就不是近实时的搜索了!!!主要瓶颈在于fsync实际发生磁盘IO写数据进磁盘,是很耗时的。 写入流程别改进如...

2018-11-29 22:17:48

阅读数:10

评论数:0

Elasticsearch的document增删改原理

(1)数据写入buffer (2)commit point (3)buffer中的数据写入新的index segment (4)等待在os cache中的index segment被fsync强制刷到磁盘上 (5)新的index sgement被打开,供search使用 (6)buffer被清空 ...

2018-11-29 22:11:01

阅读数:6

评论数:0

Elasticsearch的倒排索引结构

倒排索引,是适合用于进行搜索的 倒排索引的结构 (1)包含这个关键词的document list (2)包含这个关键词的所有document的数量:IDF(inverse document frequency) (3)这个关键词在每个document中出现的次数:TF(term frequen...

2018-11-29 21:39:24

阅读数:10

评论数:0

Elasticsearch的零停机重建索引

1、重建索引 一个field的设置是不能被修改的,如果要修改一个Field,那么应该重新按照新的mapping,建立一个index,然后将数据批量查询出来,重新用bulk api写入index中 批量查询的时候,建议采用scroll api,并且采用多线程并发的方式来reindex数据,每次s...

2018-11-29 21:37:08

阅读数:5

评论数:0

Elasticsearch的dynamic策略

1、定制dynamic策略 true:遇到陌生字段,就进行dynamic mapping false:遇到陌生字段,就忽略 strict:遇到陌生字段,就报错 PUT /my_index {   "mappings": {     "my...

2018-11-29 21:19:16

阅读数:9

评论数:0

Elasticsearch的索引管理

1、root object 就是某个type对应的mapping json,包括了properties,metadata(_id,_source,_type),settings(analyzer),其他settings(比如include_in_all) PUT /my_index {   ...

2018-11-29 20:58:27

阅读数:4

评论数:0

Elasticsearch的type数据结构

type,是一个index中用来区分类似的数据的,类似的数据,但是可能有不同的fields,而且有不同的属性来控制索引建立、分词器 field的value,在底层的lucene中建立索引的时候,全部是opaque bytes类型,不区分类型的 lucene是没有type的概念的,在document...

2018-11-29 20:50:58

阅读数:8

评论数:0

Elasticsearch的query phase和fetch phase

1、query phase (1)搜索请求发送到某一个coordinate node,构构建一个priority queue,长度以paging操作from和size为准,默认为10 (2)coordinate node将请求转发到所有shard,每个shard本地搜索,并构建一个本地的prio...

2018-11-28 21:22:11

阅读数:12

评论数:0

Elasticsearch的算法介绍

1、算法介绍 relevance score算法,简单来说,就是计算出,一个索引中的文本,与搜索文本,他们之间的关联匹配程度 Elasticsearch使用的是 term frequency/inverse document frequency算法,简称为TF/IDF算法 Term freq...

2018-11-28 21:09:16

阅读数:10

评论数:0

Elasticsearch的filter与query性能

1、filter与query示例 PUT /company/employee/2 {   "address": {     "country": "china",     &qu...

2018-11-27 22:29:04

阅读数:9

评论数:0

Elasticsearch什么是mapping、数据类型以及dynamic mapping

(1)往es里面直接插入数据,es会自动建立索引,同时建立type以及对应的mapping (2)mapping中就自动定义了每个field的数据类型 (3)不同的数据类型(比如说text和date),可能有的是exact value,有的是full text (4)exact value,在建立...

2018-11-27 21:39:02

阅读数:17

评论数:0

Elasticsearch的分词器

1、什么是分词器 切分词语,normalization(提升recall召回率) 给你一段句子,然后将这段句子拆分成一个一个的单个的单词,同时对每个单词进行normalization(时态转换,单复数转换),分瓷器 recall,召回率:搜索的时候,增加能够搜索到的结果的数量 charact...

2018-11-27 21:21:28

阅读数:28

评论数:0

Elasticsearch的倒排索引的核心原理

例如: doc1:I really liked my small dogs, and I think my mom also liked them. doc2:He never liked any dogs, so I hope that my mom will not expect me to...

2018-11-26 23:04:34

阅读数:46

评论数:0

Elasticsearch的全文检索

1、exact value 2017-01-01,exact value,搜索的时候,必须输入2017-01-01,才能搜索出来 如果你输入一个01,是搜索不出来的 2、full text (1)缩写 vs. 全程:cn vs. china (2)格式转化:like liked likes ...

2018-11-26 22:48:13

阅读数:9

评论数:0

Elasticsearch的query string的基础语法和query string分词

1、query string基础语法 GET /test_index/test_type/_search?q=test_field:test GET /test_index/test_type/_search?q=+test_field:test GET /test_index/test_ty...

2018-11-26 22:33:52

阅读数:13

评论数:0

Elasticsearch的分页搜索和deep paging

课程大纲 1、讲解如何使用es进行分页搜索的语法 size,from GET /_search?size=10 GET /_search?size=10&from=0 GET /_search?size=10&from=20 2、什么是de...

2018-11-26 22:25:08

阅读数:6

评论数:0

Elasticsearch的timeout机制

1、我们如果发出一个搜索请求的话,会拿到一堆搜索结果,本节课,我们来讲解一下,这个搜索结果里的各种数据,都代表了什么含义 2、我们来讲解一下,搜索的timeout机制,底层的原理,画图讲解 GET /_search {   "took": 6,   &am...

2018-11-26 21:36:33

阅读数:5

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭