一、Elasticsearch与关系数据库的相关术语的对应关系
Elasticsearch集群可以包含多个索引(indices)(数据库),每一个索引可以包含多个类型(types)(表),每一个类型可以包含多个文档(document)(行),每个文档包含多个字段(Filelds)(列)。
二、索引
常常因为索引傻傻分不清楚,索引在ES中有三层不同的含义。
1)index(名词)
一个索引就像是传统的关系数据库中的数据库,他是相关文档存储的地方,index的复数是indices或indexes。
查看Elasticsearch中所有的索引(所有的库)
索引一个文档,表示将一个文档存储到索引里(名词),以便他可以被检索和查询,跟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
在传统数据库中给某一个特定的列增加一个索引,如B-Tree索引来加速检索。Elasticsearch和Lucene使用一种叫做倒序索引(inverted index)的数据结构来达到相同的目的。默认情况下,文档中的所有字段都会被索引(拥有一个倒排索引),只有这样他们才是可被搜索的。