架构树下

Elasticsearch底层数据

2019-10-13  本文已影响0人  落日无风

基本概念

Elasticsearch是一个分布式全文检索系统。很多人说到它的特点:查询快,高吞吐量,可扩展。我们首先来看看它的底层数据结构。

底层数据

倒排索引(reverted index)

Elasticsearch依赖lucene来存储和索引数据。我们首先来看看它是如何处理数据。

用例:

我们有上面三句话。现在,我们要查询那句话包含了comming。

Term Freq Document
choice 1 3
coming 1 1
fury 1 2
is 3 1, 2, 3
ours 1 2
the 2 2, 3
winter 1 7
yours 1 3

如上图,我们可以看到lucene已经将content的内容拆分为词(term), 并统计它的使用的个数,在哪些document存在。
所以,当我们查询那句话包含了coming的时候,lucene首先在dictionary找到coming这个词,然后找到使用了它的document。(注: term dictionary)

总结:我们可以看到这两种查询方案,总结为两种不同的提问方式。

Lucene基本概念

特点:

数据结构

TF-IDF 关键词权重的度量

这里有个漏洞是:“的”,这个实际上是对相关性的区分是没有任何用处的,在实际的度量性中Lucene也不会进行处理。
上一篇下一篇

猜你喜欢

热点阅读