标签:指南 搜索 存储 索引 字段 Elasticsearch 文档 7.6
系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
Elasticsearch 介绍
You know, for search (and analysis)
Elasticsearch 是 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 用来收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和共享对数据的洞察,并管理和监控堆栈。Elasticsearch 是对数据进行索引、搜索和分析发生的地方。
Elasticsearch 为所有类型的数据提供实时搜索和分析。无论您拥有结构化或非结构化文本、数值数据还是地理空间数据,Elasticsearch 都可以以支持快速搜索的方式高效地存储和索引它。您可以超越简单的数据检索和聚合信息来发现数据中的趋势和模式。随着您的数据和查询量的增长,Elasticsearch 的分布式特性使您的部署能够随之无缝增长。
虽然并非所有问题都是搜索问题,但 Elasticsearch 提供了在各种用例中快速处理数据的灵活性:
- 向应用或网站添加搜索框
- 存储和分析日志、指标和安全事件数据
- 使用机器学习实时自动建模数据的行为
- 使用 Elasticsearch 作为自动化业务工作流的存储引擎
- 使用 Elasticsearch 作为管理、集成和分析空间信息的地理信息系统 (GIS)
- 使用 Elasticsearch 作为存储和处理遗传数据的生物信息学研究工具
我们不断对人们使用搜索的新颖方式感到惊讶。但是,无论您的用例是否与其中之一类似,或者您正在使用 Elasticsearch 来解决新问题,您在 Elasticsearch 中处理数据、文档和索引的方式都是相同的。
Data in: 文档和索引
Elasticsearch 是分布式文档存储中间件。Elasticsearch 不是将信息存储为列状数据的行,而是存储已序列化为 JSON 文档的复杂数据结构。当集群中有多个 Elasticsearch 节点时,存储的文档分布在整个集群中,并且可以从任何节点进行访问。
存储文档后,它会被编入索引,可近乎实时地搜索。Elasticsearch 使用一种称为倒排索引的数据结构,它支持非常快速的全文搜索。倒排索引会列出出现在所有文档中的所有唯一单词,并对单词对应的文档进行标记。
索引可以被认为是文档的优化集合,每个文档都是字段的集合,这些字段是包含数据的键值对。默认情况下,Elasticsearch 会为每个字段中的数据建立索引,每个索引字段都有一个优化并专用的数据结构。例如,文本字段存储在倒排索引中,数值和地理字段存储在 BKD 树中。Elasticsearch 如此之快的原因正是使用了单独为每个字段的优化后数据结构来组合以及返回搜索结果 。
Elasticsearch 还具有无模式的能力,可以在不明确指定如何处理文档中可能出现的每个不同字段的情况下为文档编制索引。启用动态映射后,Elasticsearch 会自动检测并将新字段添加到索引中。这种默认行为使索引和探索数据变得容易——只需开始索引文档,Elasticsearch 就会检测并将布尔值、浮点和整数值、日期和字符串映射到适当的 Elasticsearch 数据类型。
但是,您比 Elasticsearch 更了解您的数据以及您希望如何使用它。您可以定义规则来控制动态映射并显式定义映射以完全控制字段的存储和索引方式。
自定义映射的优势:
- 区分全文字符串字段和精确值字符串字段
- 执行特定于语言的文本分析
- 优化部分匹配的字段
- 使用自定义日期格式
- 使用无法自动检测到的 数据类型
geo_point
和geo_shape
为了不同的目的以不同的方式索引相同的字段通常很有用。例如,您可能希望将字符串字段索引为用于全文搜索的文本字段和用于排序或聚合数据的关键字字段。或者,您可以选择使用多个语言分析器来处理包含用户输入的字符串字段的内容。
在搜索时使用也会使用在索引期间应用于全文字段的分析链。当您查询全文字段时,在索引中查找之前,查询文本会经过相同的分析。
标签:指南,搜索,存储,索引,字段,Elasticsearch,文档,7.6 来源: https://blog.csdn.net/dismylife/article/details/119907560
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。