Elasticsearch之索引的不同含义

 

一、Elasticsearch与关系数据库的相关术语的对应关系

 
Elasticsearch集群可以包含多个索引(indices)(数据库),每一个索引可以包含多个类型(types)(表),每一个类型可以包含多个文档(document)(行),每个文档包含多个字段(Filelds)(列)。
 
 

二、索引

常常因为索引傻傻分不清楚,索引在ES中有三层不同的含义。
 
1)index(名词)
 
一个索引就像是传统的关系数据库中的数据库,他是相关文档存储的地方,index的复数是indices或indexes。
 
查看Elasticsearch中所有的索引(所有的库)
 
 
2)index(动词)
 
索引一个文档,表示将一个文档存储到索引里(名词),以便他可以被检索和查询,跟sql语句中的insert一样,但是在ES中,如果文档已经存在,新的文档将会把就的文档覆盖。 
 
PUT /megacorp/employee/1 
{ 
    "first_name" : "John", 
    "last_name" : "Smith", 
    "age" : 25, 
    "about" : "I love to go rock climbing", 
    "interests": [ "sports", "music" ] 
}

# /index_name/type_name/document_id
# /库名/表名/id
 
3)倒排索引(数据结构,算法)
 
在传统数据库中给某一个特定的列增加一个索引,如B-Tree索引来加速检索。Elasticsearch和Lucene使用一种叫做倒序索引(inverted index)的数据结构来达到相同的目的。默认情况下,文档中的所有字段都会被索引(拥有一个倒排索引),只有这样他们才是可被搜索的。
 
原文地址:https://www.cnblogs.com/lemon-le/p/12750388.html