清空网站空间,网站开发实训总结致谢,宁波如何做抖音seo搜索优化,3d网站制作一、什么是Elasticsearch
Elasticsearch是基于 Apache Lucene 构建的分布式搜索和分析引擎、可扩展数据存储和矢量数据库。它针对生产规模工作负载的速度和相关性进行了优化。使用 Elasticsearch 可以近乎实时地搜索、索引、存储和分析各种形状和大小的数据。Elasticsearch 是…一、什么是Elasticsearch
Elasticsearch是基于 Apache Lucene 构建的分布式搜索和分析引擎、可扩展数据存储和矢量数据库。它针对生产规模工作负载的速度和相关性进行了优化。使用 Elasticsearch 可以近乎实时地搜索、索引、存储和分析各种形状和大小的数据。Elasticsearch 是Elastic Stack的核心。它与Kibana相结合为以下 Elastic 解决方案提供支持 可观察性 日志、指标和跟踪收集、存储和分析来自应用程序、系统和服务的日志、指标和跟踪。应用程序性能监控 (APM)监控和分析业务关键型软件应用程序的性能。真实用户监控 (RUM)监控、量化和分析用户与 Web 应用程序的交互。OpenTelemetry重复使用您现有的仪器使用 OpenTelemetry 标准将遥测数据发送到 Elastic Stack。 搜索加粗样式 全文搜索使用倒排索引、标记化和文本分析构建快速、相关的全文搜索解决方案。向量数据库存储和搜索向量化数据并使用内置和第三方自然语言处理 (NLP) 模型创建向量嵌入。语义搜索使用同义词、密集向量嵌入和学习到的稀疏查询文档扩展等工具了解搜索查询背后的意图和上下文含义。混合搜索使用最先进的排名算法将全文搜索与向量搜索相结合。构建搜索体验向应用程序或网站添加混合搜索功能或在组织的内部数据源上构建企业搜索引擎。检索增强生成 (RAG)使用 Elasticsearch 作为检索引擎为一系列用例提供更相关、最新或专有的数据来补充生成式 AI 模型。地理空间搜索使用地理空间查询搜索位置并计算空间关系。 安全 安全信息和事件管理 (SIEM)收集、存储和分析来自应用程序、系统和服务的安全数据。端点安全监控和分析端点安全数据。威胁搜寻搜索和分析数据以检测和应对安全威胁。
二、分片
一个索引可以存储超出单个节点硬件限制的大量数据。比如一个具有10亿文档数据的索引占据1TB的磁盘空间而任一节点都可能没有这样大的磁盘空间。后者单个节点处理搜索请求响应太慢。为了解决这个问题Elasticsearch提供了将索引划分成多分的能力每一份就称之为分片。当创建一个索引的时候可以指定分片的数量。每隔分片本身也是一个功能完善并且独立的“索引”这个“索引”可以被放置到集群中的任何节点上。分片的重要性主要有两方面
允许水平分割、扩展内容容量。允许分片之上进行分布式的、并行的操作进而提高性能和吞吐量。 至于一个分片怎样分布文档怎样聚合和搜索请求是完全右Elasticsearch管理的对于作为用户来说这个是透明的无需关心。
三、副本Replicas
在一个网络、云环境里失败随时都可能发生在某个分片、节点处于离线或者消失了这种情况下有一个故障转移机制是非常有用并且是强烈推荐的。为了此目的Elasticsearch允许你创建分片的一份或多份拷贝这个拷贝就叫做复制分片副本。
复制分片之所以重要有两个主要原因
在分片或者节点失败的情况下提供了可用性。所以副本分片不能与主分片在同一个节点上。扩展你的搜索量、吞吐量因为搜索可以在所有的副本上并行运行。
总之每个索引可以被分成多个分片。一个索引也可以被复制 0 次意思是没有复制或多次。一旦复制了每个索引就有了主分片作为复制源的原来的分片和复制分片主分片的拷贝之别。
分片和复制的数量可以在索引创建的时候指定。在索引创建之后你可以在任何时候动态地改变复制的数量但是你事后不能改变分片的数量。
默认情况下Elasticsearch 中的每个索引被分片 1 个主分片和 1 个复制这意味着如果你的集群中至少有两个节点你的索引将会有 1 个主分片和另外 1 个复制分片1 个完全拷贝这样的话每个索引总共就有 2 个分片 我们需要根据索引需要确定分片个数。
四、分配Allocation
将分片分配给某个节点的过程包括分配主分片或者副分片。如果是副本还包括从主分片复制数据的过程。这个过程是由master节点完成的。
五、系统架构 当一个节点被选举成为主节点时 它将负责管理集群范围内的所有变更例如增加、 删除索引或者增加、删除节点等。 而主节点并不需要涉及到文档级别的变更和搜索等操作所以当集群只拥有一个主节点的情况下即使流量的增加它也不会成为瓶颈。 任何节点都可以成为主节点。我们的示例集群就只有一个节点所以它同时也成为了主节点。
作为用户我们可以将请求发送到集群中的任何节点 包括主节点。 每个节点都知道 任意文档所处的位置并且能够将我们的请求直接转发到存储我们所需文档的节点。 无论我们将请求发送到哪个节点它都能负责从各个包含我们所需文档的节点收集回数据并将最终结果返回給客户端。 Elasticsearch 对这一切的管理都是透明的。
六、故障转移
当集群中只有一个节点在运行时意味着会有一个单点故障问题——没有冗余。 幸运的是我们只需再启动一个节点即可防止数据丢失。当你在同一台机器上启动了第二个节点时只要它和第一个节点有同样的 cluster.name 配置它就会自动发现集群并加入到其中。但是在不同机器上启动节点的时候为了加入到同一集群你需要配置一个可连接到的单播主机列表。之所以配置为使用单播发现以防止节点无意中加入集群。只有在同一台机器上 运行的节点才会自动组成集群。
如果启动了第二个节点集群将会拥有两个节点 : 所有主分片和副本分片都已被分配 。
七、水平扩容
怎样为我们的正在增长中的应用程序按需扩容呢当启动了第三个节点我们的集群将会拥有三个节点的集群 : 为了分散负载而对分片进行重新分配 。