Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。
Elasticsearch核心概念
索引(index)
索引(index):Elasticsearch存储数据的地方,可以理解成关系型数据库中的数据库概念
类型(type)
类型(type)
映射(mapping)
映射(mapping):映射是定义一个文档以及其所包含的字段如何被存储和索引的方法。相当于关 系型数据库中的表结构
文档(document)
文档(document):Elasticsearch中的最小数据单元,常以json格式显示,一个document相当于关系型数据库中的一行数据 文档-----> mysql中的一行(一条记录)
倒排索引
一个倒排索引由文档中所有不重复词的列表构成,对于其中每个词,对应一个包含它的文档id列 表
TF :单词在某个文档中出现的次数
POS:单词在文档中出现的位置
field(域)
field(域):相当于mysql中的一列(一个字段)
倒排索引补充
正排索引
在讲述倒排索引之前先介绍下正排索引。正排索引就是如下表形式:
文档id | 文档内容 |
---|---|
1 | 什么是正排索引 |
2 | 什么是倒排索引 |
3 | 正排索引和倒排索引 |
倒排索引
倒排索引就是对上表进行转换,最简单的倒排索引如下表所示:
单词 | 文档ids |
---|---|
什么 | 1,2 |
是 | 1,2 |
正排 | 1,3 |
倒排 | 2,3 |
索引 | 1,2,3 |
和 | 3 |
词频(TF)和位置(POS)
上表所示的倒排索引之所以是最简单的,是因为这个索引系统只记载了哪些文档包含某个单词。实用的倒排索引还可以记载更多的信息,如下表第3列的词频 和位置。
TF :单词在某个文档中出现的次数
POS:单词在文档中出现的位置
以"索引"这个单词为例,"3:2:<2,7>":表示在文档id是3的文档中出现2次,在文档中的位置分别是2和7。