Elasticsearch学习(二)ElasticSearch原理

本文介绍了Elasticsearch的倒排索引原理,包括基本概念、如何实现快速查询,以及联合索引的方法。通过FST和压缩技术提高查询效率,并探讨了内存管理和ID选择对性能的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                  Elasticsearch-基础介绍及索引原理分析

参考了多个博客和文章,自己手敲整理一遍,加深印象,文章最后有借鉴的链接。

基本概念

Elasticsearch是面向文档型数据库,一条数据就是一个文档,用JSO作为文档序列化的格式,比如下面的用户数据。

{
    "name" :     "John",
    "sex" :      "Male",
    "age" :      25,
    "birthDate": "1990/05/01",
    "about" :    "I love to go rock climbing",
    "interests": [ "sports", "music" ]
}

在MySql中数据存储想到建立一个Use表,key代表为数据库中的字段,在Elasticsearch中这里就表示一个文档,当然这个文档会属于一个User类型,各式各样的类型存储于一个索引中。一个简易的Elasticsearch和Mysql的对照表。

关系数据库=》数据库=》表=》行=》列

Elasticsearch=》索引=》类型=》文档=》字段。

Elasticsearch是如何做到快速查询的

        Elasticsearch使用的倒排索引比MySql的B+Tree的索引更快,为什么?   

         关系型数据库的B+Tree索引,二叉树的查询效率是LogN,插入新节点不用移动全部节点,兼顾插入和查询性能。具体的查询性能优化后续用单独的篇章来描述。

         倒排索引:是通过字段中的内容来进行来建立倒排索引,假如对下面的数据进行索引

| ID | Name | Age  |  Sex     |
| -- |:------------:| -----:| -----:| 
| 1  | Kate         | 24 | Female
| 2  | John         | 24 | Male
| 3  | Bill         | 29 | Male

   对三个字段分别做倒排索引,结果看到为

Name:

| Term | Posting List |
| -- |:----:|
| Kate | 1 |
| John | 2 |
| Bill | 3 |
Age:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值