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

十八、初识elasticsearsh (索引)

目录

一、Elasticsearch的介绍:

二、正向索引和倒排索引

1、正向索引

2、倒排索引

3、索引(index) :相同类型的文档的集合

4、映射(mapping):索引中文档的字段约束信息,类似表的结构约束


一、Elasticsearch的介绍:

  1. Elasticsearch是一个全文搜索引擎,建立在Lucene搜索库之上。

  2. Elasticsearch是一个分布式系统,可以处理大量数据、高并发和高可扩展性

  3. Elasticsearch可以对不同类型的数据进行搜索和分析,包括文本、数字和坐标数据等。

  4. Elasticsearch支持近实时搜索,可以将数据在几秒钟内索引到搜索引擎中。

  5. Elasticsearch可以通过简单的REST API进行搜索和查询,可以使用各种编程语言进行开发和集成。

  6. Elasticsearch提供了强大的搜索和过滤功能,包括全文搜索、精确搜索、模糊搜索、聚合和过滤器等。

  7. Elasticsearch可以与其他开源软件集成,如Logstash、Kibana和Beats等,构建完整的日志分析和数据可视化平台

  8. Elasticsearch的社区活跃,提供了大量的文档、教程和支持资源,可以帮助开发者更好地使用和开发Elasticsearch。

二、正向索引和倒排索引

1、正向索引

正向索引是指从左往右,以0开始递增的索引方式,也是最常用的索引方式。例如,在一个字符串"Hello, world!"中,正向索引从0开始,可以表示为:

Hello,world!
0123456789101112

在下面的例子中,程序需要一个个的查表,效率低下。

2、倒排索引

  • 倒排索引是一种数据结构,它将文档中的每个单词或术语映射到包含该单词或术语的文档列表中。
  • 这样就可以快速地通过单词或术语来查找包含它们的所有文档。
  • 倒排索引可用于全文搜索引擎,文档管理系统等。
  • 其优点是快速的搜索速度,但缺点是需要较高的存储空间和复杂的更新逻辑。

文档( document) :每条数据就是一个文档

词条( term) :文档按照语义分成的词语

以下是倒排索引的示意图:

将一个title分解成为几个具有意义的词语,并将含有该词的title编号存入倒排索引中

3、索引(index) :相同类型的文档的集合

  1. 索引可以被理解为一种数据结构,它可以将文本或其他类型的数据组织起来,以便于快速查找、访问和处理。
  2. 在计算机科学和信息技术领域,索引通常用于对大量数据进行高效的查询和搜索。
  3. 例如,搜索引擎中的网页索引,数据库中的索引等。

4、映射(mapping):索引中文档的字段约束信息,类似表的结构约束

  1. 映射可以被理解为将一种数据形式转换为另一种数据形式的过程。
  2. 在索引的情境下,映射通常是将索引词或术语映射到包含这些词或术语的文档列表。
  3. 例如,在搜索引擎中,当用户输入关键词时,搜索引擎会将这些关键词映射到包含这些关键词的网页列表,然后返回给用户。

在文本处理和信息检索中,索引和映射通常是紧密相关的。通常会使用倒排索引的方法,将每个单词或术语映射到包含该单词或术语的文档列表。这种映射方式可以使得检索和查询更加高效。


http://www.kler.cn/news/148328.html

相关文章:

  • vue 通过ref调用router-view子组件的方法
  • 函数版 → 求小于给定整数的最大素数 ← Python
  • Oracle的安装及使用流程
  • Java中的mysql——面试题+答案(数据库连接池,批处理操作)——第22期
  • 每日一题(LeetCode)----哈希表--快乐数
  • Python基础:JSON保存结构化数据(详解)
  • 解决LocalDateTime传输前端为时间的数组
  • 想成为网络安全工程师该如何学习?
  • 记录:如何快捷的从一个对象中取出几个属性组成新的对象
  • HarmonyOS4.0系列——02、汉化插件、声明式开发范式ArkTS和类web开发范式
  • Cesium 展示——地球以及渲染数据导出(下载)为图片或 pdf
  • HarmonyOS简述及开发环境搭建
  • Python入职某新员工大量使用Lambda表达式,却被老员工喷是屎山
  • [Java 源码] 秋招常被问到 GC 相关的几道面试题(集中在分配以及回收)
  • C++:char* array = “Hello World“报错怎么办
  • Redis常用操作及应用(一)
  • C++学习——类和对象(上)
  • IvorySQL3.0:基于PG16.0最新内核,实现兼容Oracle数据库再升级
  • 前端css粘性布局,顶部吸附效果(position: sticky)
  • Lua判断字符串包含另一个字符串
  • python中模块的创建及引用(import as,import,from)
  • IP地址定位的误差问题及解析
  • 212. 单词搜索 II
  • react等效memo的方法
  • vue3安装eslint和prettier,最简单的步骤
  • Appium自动化测试:sdk版本和手机版本不兼容你就这样做,分分钟解决问题
  • 音视频学习(十九)——rtsp收流(tcp方式)
  • django 新建流程
  • Flask Session 登录认证模块
  • Python小技巧:探索函数调用为何加速代码执行