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

Elasticsearch 初步认识

Elasticsearch 初步认识

1 索引(index)

索引是具有相同结构的文档集合。例如,可以有一个客户信息的索引,包括一个产品目录的索引,一个订单数据的索引。在系统上索引的名字全部小写,通过这个名字可以用来执行索引、搜索、更新和删除操作等。在单个集群中,可以定义多个你想要的索引。

2 类型(type)

在索引中,可以定义一个或多个类型,类型是索引的逻辑分区。在一般情况下,一种类型被定义为具有一组公共字段的文档。例如,让我们假设你运行一个博客平台,并把所有的数据存储在一个索引中。在这个索引中,你可以定义一种类型为用户数据,一种类型为博客数据,另一种类型为评论数据。

Elasticsearch 7.x

  • 不建议在请求中指定类型。

Elasticsearch 8.x

  • 不再支持在请求中指定类型。
  • include_type_name 参数已删除。

https://www.elastic.co/guide/en/elasticsearch/reference/7.x/removal-of-types.html

3 文档(document)

文档存储在Elasticsearch 中的一个JSON格式的字符串。它就像在关系数据库中表的一行。每个存储在索引中的一个文档都有一个类型和一个 ID ,每个文档都是一个 JSON 对象,存储了零个或者多个字段,或者键值对。原始的 JSON 文档被存储在一个叫做 _source 的字段中。当搜索文档的时候默认返回的就是这个字段。

4 映射(mapping)

映射像关系数据库中的表结构,每一个索引都有一个映射,它定义了索引中的每一个字段类型,以及一个索引范围内的设置。一个映射可以事先被定义,或者在第一次存储文档的时候自动识别。

5 字段(field)

文档中包含零个或者多个字段,字段可以是一个简单的值(例如字符串、整数、日期),也可以是一个数组或对象的嵌套结构。字段类似于关系数据库中表的列。每个字段都对应一个字段类型,例如整数、字符串、对象等。字段还可以指定如何分析该字段的值。

6 来源字段(source field)

默认情况下,你的原文档将被存储在 _source 这个字段中,当你查询的时候也是返回这个字段。这允许你可以从搜索结果中访问原始的对象,这个对象返回一个精确的 JSON 字符串,这个对象不显示索引分析后的其他任何数据。

7 分析与分析器

使用 analyze API 来看文本是如何被分析的

GET /_analyze
{"analyzer": "standard","text": "Text to analyze"
}

结果:

{"tokens": [{"token":        "text","start_offset": 0,"end_offset":   4,"type":         "<ALPHANUM>","position":     1},{"token":        "to","start_offset": 5,"end_offset":   7,"type":         "<ALPHANUM>","position":     2},{"token":        "analyze","start_offset": 8,"end_offset":   15,"type":         "<ALPHANUM>","position":     3}]
}
  • token 是实际存储到索引中的词条。
  • position 指明词条在原始文本中出现的位置。
  • start_offset 和 end_offset 指明字符在原始字符串中的位置。

8 jar客户端

<dependency><groupId>io.searchbox</groupId><artifactId>jest</artifactId><version>5.3.3</version>
</dependency>
<dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>5.5.3</version>
</dependency>
http://www.lryc.cn/news/2380287.html

相关文章:

  • 爬虫攻防战:从入门到放弃的完整对抗史与实战解决方案
  • 可变参数(Variadic Functions)- 《Go语言实战指南》
  • [ctfshow web入门] web75
  • 交流学习 | 江西同为科技有限公司赴海尔总部考察交流
  • React方向:react的基本语法-数据渲染
  • Java求职面试:从核心技术到大数据与AI的场景应用
  • Ubuntu 20.04之Docker安装ES7.17.14和Kibana7.17.14
  • RK3568-鸿蒙5.1镜像烧录与调试
  • 游戏引擎学习第294天:增加手套
  • C# Try Catch Finally 执行顺序是什么?有返回值呢?
  • 水库雨水情测报与安全监测系统解决方案
  • 架构选择/区别
  • 嵌入式学习笔记 - STM32 ADC 模块工作模式总结
  • Python爬虫实战:获取taobao网最新rtx5060ti显卡销量数据并分析,为消费者做参考
  • IPLOOK | 2025 MVNOs 世界大会:从Wi-Fi通话到卫星覆盖
  • 零基础搭建!基于PP-ShiTuV2的轻量级图像识别系统(Docker+API部署指南)
  • 【C语言】贪吃蛇小游戏
  • Linux的日志管理
  • 大语言模型 07 - 从0开始训练GPT 0.25B参数量 - MiniMind 实机训练 预训练 监督微调
  • [免费]苍穹微信小程序外卖点餐系统修改版(跑腿点餐系统)(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
  • 【RAG】RAG-MCP:基于检索增强生成来缓解大语言模型工具选择中的提示膨胀问题
  • 甘特图工具怎么选?免费/付费项目管理工具对比测评(2025最新版)
  • UI自动化测试中,一个完整的断言应所需要考虑的问题
  • AIGC与数字金融:人工智能金融创新的新纪元
  • CSS详解:特性、选择器与优先级
  • 手机怎么查看网络ip地址?安卓/iOS设备查询指南
  • React-useRef
  • 无损耗协议:PROFINET和EtherNet IP网关的高效安装指南
  • 【知识产权出版社-注册安全分析报告-无验证方式导致安全隐患】
  • std::ranges::iota