作为一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene基础上的搜索引擎。Elasticsearch 可以用于:分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索;实时分析的分布式搜索引擎;可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
Elasticsearch的文件存储
Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档,用JSON作为文档序列化的格式,比如下面这条用户数据:
{
"name" : "XiaoMing",
"sex" : "Male",
"age" : 18,
"birthDate": "2000/05/01",
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}
在Mysql数据库存储会建立一张User表,有姓名、性别等字段,在Elasticsearch里就是一个文档,当然这个文档会属于一个User的类型,各种各样的类型存在于一个索引当中。以下是将Elasticsearch和关系型数据术语对照表:
关系数据库 ⇒ 数据库 ⇒ 表 ⇒ 行 ⇒ 列(Columns)
Elasticsearch ⇒

本文详细介绍了Elasticsearch的索引机制,包括文件存储、倒排索引、Term Dictionary、Term Index以及压缩技巧。此外,还讨论了联合索引的实现方式,如跳表和位图,强调了合理设计ID对查询性能的影响。
最低0.47元/天 解锁文章
1641





