elasticsearch

共计 1411 个字符,预计需要花费 4 分钟才能阅读完成。

  1. elasticsearch用过吗?什么是倒排索引?
    elasticsearch一个实时的分布式搜索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据;
    倒排索引是是elasticsearch中的一种全文搜索的数据结构,与正排索引相反,正排索引是根据文档的id去获取对应的数据,而倒排索引是根据词去获取对应的文档id。具体来说,倒排索引是一个以词(term)为中心的结构,每个词都关联到一个倒排列表,该列表记录了包含该词的所有文档的ID。在构建倒排索引时,首先需要对文档集合进行分词,将每个文档拆分为一系列单词,然后,对于每个单词,创建一个倒样列表,其中记录了包含该单词的所有文档的ID,每个单词的倒排列表可以按照文档ID的顺序存储,以便于后续的查询操作。在查询过程中,根据查询词获取对应的倒排列表,然后对列表进行合并操作,以获取包含该查询词的所有文档,合并操作需要按照文档的排序顺序进行,因此需要在合并过程中对文档进行排序和筛选,总之,分词和倒排索引是信息检索系统中的重要概念。通过分词,可以将自然语言文本转化为机器可读的格式,便于后续的处理和分析,而倒排索引则提供了快速査询文档的功能,使得信息检索过程更加高效。
  2. Elasticsearch分片、副本讲一下?
    elasticsearch中,分片是指将索引内部的数据分割成多个部分的机制,用于分布式存储和管理索引的数据。分片是elasticsearch的核心概念,它允许索引被拆分成多个物理和逻辑部分,以实现分布式存储和处理数据的能力。
    每个索引都可以配置分片数目,通常包含两种分片类型:主分片、副本分片
    主分片:
    主分片式索引数据的原始分片,可以有一个或多个主分片。负责接收文档的索引请求,并将数据存储在其上。主分片的索引在索引创建时定义,通常不能更改;
    副本分片:每个主分片可以有零个或多个副本分片。副本分片式主分片的完全复制,它们用于提供数据的可用性和查询性能、副本分片的数量可以在索引运行时调整;

    PUT /my_index
    {
    “settings”: {
    “index”: {
    “number_of_shards”: 3, # 指定该索引将有3个主分片
    “number_of_replicas”: 2 # 每个主分片将有2个副本分片
    }
    }
    }
    
  3. elasticsearch如何做性能优化?
    常用优化
  4. elasticsearch 搜索数据的过程?
    1. 接受请求:elasticsearch集群中的任何一个节点都可以接受用户的搜索请求,一旦接受到请求,该节点会将其转发给协调节点;
    2. 路由与寻址:协调节点接受到请求后,根据请求中的路由信息,将请求转发给相对应的主分片或者副本分片。每个分片都会独立执行搜索并生成一个优先队列;
    3. 分片选择和请求转发:每个分片在本地执行搜索并构建一个大小为from+size的优先队列,优先队列中包含了查询结果按照排序值的顺序排列的文档,同时,协调节点也会将该请求转发给相关的副本分片,并合并他们的结果到自己的优先队列中;
    4. 执行搜索计划: 一旦所有的分片都完成了搜索并生成了优先队列,协调节点会将所有优先队列合并为一个全局排序后的结果列表;
    5. 搜索的后处理: 协调节点会对全局排序后的结果列表进行处理,例如进行结果合并、处理搜索结果、返回查询结果等;
    6. 返回结果: 一旦所有的搜索和后处理都完成了,协调节点会将最终的结果返回给客户端;
正文完
 0
小白次
版权声明:本站原创文章,由 小白次 于2024-07-15发表,共计1411字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(一条评论)
小白次 博主
2024-07-15 17:17:05 回复

11我

 Windows  Chrome