当前位置: 首页 > news >正文

ElasticSearch学习

一,简介

ES(elaticsearch简写), Elasticsearch是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。
Elasticsearch是使用Java编写并基于Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

二,ES搜索引擎原理

索引和分片

在ES中,所有的数据都被存储在称为索引的数据结构中,一个索引可以包含多个文档。而的文档的类型需要在创建索引时指定。ES还对每个索引进行了分片,每个分片都被存储在集群中的不同节点上,这样可以提高数据的可用性和查询效率。

索引和文档关系

参考:https://blog.csdn.net/liuwenqiang1314/article/details/125668175

ES数据结构和MySQL对应

ES数据结构中的索引和表的概念类似于MySQL,但ES的索引是面向文档的,而MySQL的表是面向行的。此外,ES的数据存储和检索采用了倒排索引,而MySQL则是使用了B+树。

ES中有几个基本概念:索引(index)、类型(type)、文档(document)、映射(mapping)等。我们将这几个概念与传统的关系型数据库中的库、表、行、列等概念进行对比,如下表:
在这里插入图片描述

映射

在ES中,每个索引都有一个映射,用来定义文档中每个字段的类型,以及如何存储和索引数据。映射定义了索引中可以存储哪些数据类型,以及每个类型的存储方式和搜索方式。

搜索

在ES中,搜索请求被发送到集群中的一个节点(称为协调节点或负载均衡节点)。这个节点将请求发送到包含索引分片的节点。每个节点都会返回匹配搜索条件的文档,并将结果返回给协调节点,协调节点将所有结果汇总后返回给客户端。

倒排索引

计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这种建立索引的方式叫倒排索引。

在搜索引擎中,每个文档都有一个对应的文档ID,文档内容被表示为一系列关键字的集合。例如,文档1经过分词,提取了20个关键字,每个关键字都会记录它在文档中出现的次数和出现位置。

然后,倒排索引就是关键字到文档 ID的映射,每个关键字都对应着一段的文件,这些文件中都出现了关键字。

倒排索引的两个重要细节:

  • 倒排索引中的所有词项对应一个或多个文档;
  • 倒排索引中的词项根据字典顺序升序排列

一篇很好的讲倒排索引的文章:ES之倒排索引详解

三,Java中ElasticSearch的查询

参考文章:Java中ElasticSearch的各种查询(普通,模糊,前缀,高亮,聚合,范围)

全文参考文章:
ES基本概念和原理简单介绍
ES搜索引擎
ES搜索引擎原理

http://www.lryc.cn/news/121433.html

相关文章:

  • 软件测试基础篇——Redis
  • 大数据扫盲(1): 数据仓库与ETL的关系及ETL工具推荐
  • spring的aop动态代理对象注入时机
  • idea集成svn
  • RedisDesktopManage
  • 《Vue.js实战》——基础篇(1)
  • R语言 列表中嵌套列名一致的多个数据框如何整合为一个数据框
  • PyQt5利用QTextEdit控件输入多行文本
  • 【数据结构】二叉树常见题目
  • 树莓派使用 ENC28J60
  • 跟我学C++中级篇——模板友元的应用
  • 软件测试基础篇——MySQL
  • FreeRTOS(二值信号量)
  • leetcode面试题:动物收容所(考查对队列的理解和运用)
  • 【Linux命令行与Shell脚本编程】第十八章 文本处理与编辑器基础
  • 2023牛客暑期多校训练营7
  • centos7升级glibc2.28
  • 腾讯云香港服务器租用_2核2G20M_2核4G30M
  • 十三、ESP32PS2摇杆(ADC)
  • 网络安全的相关知识点
  • 算法练习(6):牛客在线编程06 递归/回溯
  • C#使用OpenCv(OpenCVSharp)图像局部二值化处理实例
  • MySQL多表关联查询
  • flutter开发实战-CustomClipper裁剪长图帧动画效果
  • CSS 中的优先级规则是怎样的?
  • 概率图模型(Probabilistic Graphical Model,PGM)
  • Oracle 知识篇+会话级全局临时表在不同连接模式中的表现
  • MySQL 数据库文件的导入导出
  • 找不到资产文件project.assets.json
  • 【python】python将json字符串导出excel | pandas处理json字符串保存为csv