秋招准备之elasticsearch

ES的基本概念:文档和索引

ES是面向文档(document)的,文档是可搜索的搜索的最小单位,文档会被序列化为JSON格式,保存在ES中,每个文档有个unique ID,此ID可以自己指定,也可以由ES生成,文档类似数据库中的一条记录。文档的元数据用于表示文档的相关信息,eg:_socre:相关性打分

秋招准备之elasticsearch
秋招准备之elasticsearch
索引index是一类文档的集合,index体现了逻辑空间的概念,通过mapping定义文档字段名的类型。而Shard体现了物理空间的概念。

索引的不同语义,名词-动词

文档的CRUD
秋招准备之elasticsearch

批量API,bulk api,批量读取mget,批量

秋招准备之elasticsearch

ES的倒排索引

可以为字段建立倒排索引。

秋招准备之elasticsearch
秋招准备之elasticsearch
秋招准备之elasticsearch

倒排索引的第一步:分词(analysis),分词过程通过analyzer实现。
秋招准备之elasticsearch

倒排索引的不可变性
秋招准备之elasticsearch

删除一个文档的过程,记录在.del文件中
秋招准备之elasticsearch

snalyzer的组成
秋招准备之elasticsearch

标准的分词器,默认的分词器,按词切分,小写处理
秋招准备之elasticsearch

对相关性的衡量指标:查准率(precision)、查全率(recall)和排序。
秋招准备之elasticsearch

ES的主分片和副本

秋招准备之elasticsearch
秋招准备之elasticsearch
秋招准备之elasticsearch

分片原理
秋招准备之elasticsearch
秋招准备之elasticsearch

refresh: ES写文档时,先写入index-buffer中,每间隔固定时间,再写入segment
秋招准备之elasticsearch
秋招准备之elasticsearch
秋招准备之elasticsearch
秋招准备之elasticsearch

ES查询过程:Query Then Fetch

类似归并排序
秋招准备之elasticsearch
秋招准备之elasticsearch

潜在问题?相关性分计算不准确
秋招准备之elasticsearch

解决方法:1.将主分区设置为1.
秋招准备之elasticsearch
秋招准备之elasticsearch

Scroll API 创建了一个快照。

ES的两大功能:search+aggregation

秋招准备之elasticsearch
秋招准备之elasticsearch

乐观并发控制

秋招准备之elasticsearch
秋招准备之elasticsearch
秋招准备之elasticsearch