当前位置: 首页 > 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/a/148328.html

相关文章:

  • React 中如何解析字符串中的 html 结构
  • 通过MongoDB Atlas 实现语义搜索与 RAG——迈向AI的搜索机制
  • LeetCode题解:5.最长回文子串【Python题解超详细,中心拓展、动态规划、暴力解法】
  • 【PowerHarmony】电鸿蒙学习记录-编写helloworld!
  • 火车车厢重排问题,C++详解
  • 蓝桥杯c++算法学习【2】之搜索与查找(九宫格、穿越雷区、迷宫与陷阱、扫地机器人:::非常典型的必刷例题!!!)
  • 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判断字符串包含另一个字符串