Elasticsearch: 权威指南 阅读笔记

2018-11-13  本文已影响0人  恶魔幻心

1、基本概念

索引:库,分结构化索引、非结构化索引

类型:表

文档:数据,倒排索引,默认的,一个文档中的每一个属性都是 被索引 的(有一个倒排索引)和可搜索的。一个没有倒排索引的属性是不能被搜索到的

2、更新文档实际流程

从旧文档构建 JSON

 更改该 JSON

删除旧文档

索引一个新文档

2、删除文档

删除文档不会立即将文档从磁盘中删除,只是将文档标记为已删除状态。随着你不断的索引更多的数据,Elasticsearch 将会在后台清理标记为已删除的文档

3、乐观并发控制:

1)、只有现在的_version为1时,本次更新才能成功 

PUT /website/blog/1?version=1   

2)、一个常见的设置是使用其它数据库作为主要的数据存储,使用 Elasticsearch 做数据检索,这意味着主数据库的所有更改发生时都需要被复制到 Elasticsearch ,如果多个进程负责这一数据同步,你可能遇到类似于之前描述的并发问题

增加version_type=external,检查当前_version是否小于指定的版本号

PUT /website/blog/2?version=5&version_type=external


4、查询与过滤

过滤查询(Filtering queries)只是简单的检查包含或者排除,这就使得计算起来非常快。考虑到至少有一个过滤查询(filtering query)的结果是

“稀少的”(很少匹配的文档),并且经常使用不评分查询(non-scoring queries),结果会被缓存到内存中以便快速读取,所以有各种各样的手段来优化查询结果。

相反,评分查询(scoring queries)不仅仅要找出匹配的文档,还要计算每个匹配文档的相关性,计算相关性使得它们比不评分查询费力的多。同时,查询结果并不缓存

通常的规则是,使用查询(query)语句来进行全文搜索或者其它任何需要影响相关性得分的搜索。除此以外的情况都使用过滤(filters)。


5、词的权重

词频(TF):Term Frequency。词在文档中出现的频度是多少?频度越高,权重越高

逆向文档频率(IDF)(Inverse Document Frequency),词在集合所有文档里出现的频率是多少?频次越高,权重越低

字段长度归一值(norm)字段的长度是多少?字段越短,字段的权重越高

上一篇下一篇

猜你喜欢

热点阅读