ElasticSearch介绍

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: es学习笔记

简介

Elasticsearch 是一款稳定高效的分布式搜索和分析引擎,它的底层基于 Lucene,并提供了友好的 RESTful API 来对数据进行操作,还有比较重要的一点是,Elasticsearch 开箱即可用,上手也比较容易。目前 Elasticsearch 在搭建企业级搜索(如日志搜索、商品搜索等)平台中很广泛,官网也提供了不少案例,比如:

  • GitHub 使用 Elasticsearch 检索超过 800 万的代码库
  • eBay 使用 Elasticsearch 搜索海量的商品数据
  • Netflix 使用 Elasticsearch 来实现高效的消息传递系统

概念知识

基础数据类型

ES的数据结构和Mysql等关系型数据库的结构可以对应起来的:

  • Index:这里的Index是名词,一个Index就像是传统关系数据库的 Database,它是Elasticsearch用来存储数据的逻辑区域
  • Document:Elasticsearch使用JSON文档来表示一个对象,就像是关系数据库中一个Table中的一行数据
  • Type:文档归属于一种Type,就像是关系数据库中的一个Table
  • Field:每个文档包含多个字段,类似关系数据库中一个Table的列

文档

通常情况下,我们使用的术语 `对象` 和 `文档` 是可以互相替换的。不过,有一个区别: 一个对象仅仅是类似于 hash 、 hashmap 、字典或者关联数组的 JSON 对象,对象中也可以嵌套其他的对象。 对象可能包含了另外一些对象。在 Elasticsearch 中,术语 文档 有着特定的含义。它是指最顶层或者根对象, 这个根对象被序列化成 JSON 并存储到 Elasticsearch 中,指定了唯一 ID。

文档元数据

  • _index 文档存储的地方
  • _type 文档代表的对象的类(7.x的版本将去掉_type)
  • _id 文档的唯一标识。可手动设置也可自动生成(22位长)

冲突解决

  • 悲观并发控制
  • 这种方法被关系型数据库广泛使用,它假定有变更冲突可能发生,因此阻塞访问资源以防止冲突。 一个典型的例子是读取一行数据之前先将其锁住,确保只有放置锁的线程能够对这行数据进行修改。
  • 乐观并发控制
  • Elasticsearch 中使用的这种方法假定冲突是不可能发生的,并且不会阻塞正在尝试的操作。 然而,如果源数据在读写当中被修改,更新将会失败。应用程序接下来将决定该如何解决冲突。 例如,可以重试更新、使用新的数据、或者将相关情况报告给用户。
相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
开发框架 安全 Java
一文搞懂JDK8与Java1.8的区别
一文搞懂JDK8与Java1.8的区别
3689 0
面向服务架构(SOA)吐血整理
面向服务架构(SOA)吐血整理
面向服务架构(SOA)吐血整理
|
存储 缓存 关系型数据库
【MySQL进阶-08】深入理解innodb存储格式,双写机制,buffer pool底层结构和淘汰策略
【MySQL进阶-08】深入理解innodb存储格式,双写机制,buffer pool底层结构和淘汰策略
1175 0
|
存储 Java 调度
死磕-java并发编程技术(一)
死磕-java并发编程技术(一)
|
12月前
|
存储 监控 安全
阿里云携手庆视互联数据迁云,助力全球业务升级
智能家居数据迁云,守护千万家庭安全
|
11月前
|
应用服务中间件 nginx
Nginx里的root和alias的区别是什么?
Nginx里的root和alias的区别是什么?
817 2
|
机器学习/深度学习 数据采集 算法
一文搞懂 卷积神经网络 批归一化 丢弃法
这篇文章详细介绍了卷积神经网络中的批归一化(Batch Normalization)和丢弃法(Dropout),包括它们的计算过程、作用、优势以及如何在飞桨框架中应用这些技术来提高模型的稳定性和泛化能力,并提供了网络结构定义和参数计算的示例。
|
11月前
|
缓存 JavaScript 安全
如何处理 CORS 带来的性能问题
CORS(跨源资源共享)是浏览器为了解决安全问题而引入的一种机制,但有时会带来性能问题。本文介绍了CORS的工作原理以及如何通过预检请求优化、缓存策略调整和合理配置响应头等方法来提升性能。
|
12月前
|
SQL
SQL使用with构建临时表
SQL使用with构建临时表
395 8
|
SQL 存储 关系型数据库
MySQL主从同步延迟原因与解决方法
MySQL主从同步延迟原因与解决方法
1366 0