Elasticsearch入门

简介:

Elasticsearch是一款非常强大的开源搜索引擎,Elasticsearch还有关联的一整套技术栈,包含Kibana、Logstash等组件,称为ELK。被广泛应用在日志数据分析、系统实时监控等领域。Elasticsearch核心是基于Apache Lucene库实现的。

Elasticsearch有如此高性能的搜索表现,是基于底层的倒排索引技术,而MySQL是基于正向索引。

正向索引和倒排索引:

  • 正向索引是最传统的,根据id索引的方式。但根据词条查询时,必须先逐条获取每个文档,然后判断文档中是否包含所需要的词条,是根据文档找词条的过程。

  • 而倒排索引则相反,是先找到用户要搜索的词条,根据词条得到保护词条的文档的id,然后根据id获取文档。是根据词条找文档的过程。

优缺点:

正向索引:

  • 优点:可以给多个字段创建索引,根据索引字段搜索、排序速度非常快;

  • 缺点:根据非索引字段,或者索引字段中的部分词条查找时,只能全表扫描

倒排索引:

  • 优点:根据词条搜索、模糊搜索时,速度非常快;

  • 缺点:只能给词条创建索引,而不是字段,无法根据字段做排序;

基本概念:

Elasticsearch中有很多独有的概念,与mysql中略有差别,但也有相似之处

索引和映射:

随着业务发展,需要在es中存储的文档也会越来越多,比如有商品的文档、用户的文档、订单文档等等,因此,我们可以把索引当做是数据库中的;

数据库的表会有约束信息,用来定义表的结构、字段的名称、类型等信息。因此,索引库中就有映射(mapping),是索引中文档的字段约束信息,类似表的结构约束

文档和字段:

Elasticsearch是面向文档(Document)存储的,可以是数据库中的一条商品数据,一个订单信息。文档数据会被序列化为JSON格式后存储在Elasticsearch中;原本数据库中的一行数据就是ES中的一个JSON文档;而数据库中每行数据都包含很多列,这些列就转换为JSON文档中的字段(Field)

MySQL

Elasticsearch

说明

Table

Index

索引(index),就是文档的集合,类似数据库的表(table)

Row

Document

文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式

Column

Field

字段(Field),就是JSON文档中的字段,类似数据库中的列(Column)

Schema

Mapping

Mapping(映射)是索引中文档的约束,例如字段类型约束。类似数据库的表结构(Schema)

SQL

DSL

DSL是elasticsearch提供的JSON风格的请求语句,用来操作elasticsearch,实现CRUD

各自擅长之处:

  • Mysql:擅长事务类型操作,可以确保数据的安全和一致性

  • Elasticsearch:擅长海量数据的搜索、分析、计算

因此在企业中,往往是两者结合使用:

  • 对安全性要求较高的写操作,使用mysql实现

  • 对查询性能要求较高的搜索需求,使用elasticsearch实现

  • 两者再基于某种方式,实现数据的同步,保证一致性

相关推荐

  1. Elasticsearch入门

    2024-01-11 23:18:02       56 阅读
  2. ElasticSearch入门

    2024-01-11 23:18:02       47 阅读
  3. Elasticsearch入门

    2024-01-11 23:18:02       43 阅读
  4. elasticsearch基础入门

    2024-01-11 23:18:02       38 阅读
  5. Elasticsearch入门(二)

    2024-01-11 23:18:02       43 阅读
  6. ElasticSearch 入门学习

    2024-01-11 23:18:02       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-11 23:18:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-11 23:18:02       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-11 23:18:02       82 阅读
  4. Python语言-面向对象

    2024-01-11 23:18:02       91 阅读

热门阅读

  1. h5 支付宝支付/微信支付

    2024-01-11 23:18:02       49 阅读
  2. excel 按照姓名日期年份分组求和

    2024-01-11 23:18:02       49 阅读
  3. 极智AI | 谈谈AI发展系列汇总

    2024-01-11 23:18:02       62 阅读
  4. Autosar通信实战系列11-PduR模块要点及其配置介绍

    2024-01-11 23:18:02       60 阅读
  5. python的猴子补丁(Monkey Patching)

    2024-01-11 23:18:02       55 阅读
  6. jQuery入门

    2024-01-11 23:18:02       49 阅读
  7. Linux 开启Swap交换内存

    2024-01-11 23:18:02       59 阅读
  8. linux—多服务免密登录

    2024-01-11 23:18:02       48 阅读
  9. js获取光标坐标

    2024-01-11 23:18:02       55 阅读
  10. docker镜像版本号规则定义

    2024-01-11 23:18:02       48 阅读
  11. 搜索二维矩阵【二分】

    2024-01-11 23:18:02       63 阅读
  12. 轻量级 HTTP 请求组件

    2024-01-11 23:18:02       54 阅读
  13. 力扣(leetcode)第520题检测大写字母(Python)

    2024-01-11 23:18:02       63 阅读
  14. docker资源控制

    2024-01-11 23:18:02       51 阅读