【问题标题】:Find doc ids before query phase?在查询阶段之前查找文档 ID?
【发布时间】:2020-04-13 17:24:01
【问题描述】:

当我们在 Elastic 中进行任何搜索时,Elastic 会分两个阶段执行,即查询和获取阶段,如 resource“默认搜索类型:查询然后获取”部分所述。

以下是要点

  1. 将查询发送到每个分片
  2. 查找所有匹配的文档并使用本地术语/文档频率计算分数
  3. 构建结果优先级队列(排序、使用 from/to 进行分页等) ..

我对查询阶段的第 1 点有疑问。根据我在查询阶段本身之前的理解,elastic 将根据搜索查询中的单词从倒排索引中找到相关文档 id。 然后查询将只去特定的分片,而不是去每个分片。对吗?

因此在查询阶段将根据 document_id 获得 grom 倒排索引从分片中弹性获取这些文档,然后计算获取的文档的分数并将 id 和分数一起返回到请求节点。

在获取阶段,请求节点获取所有分数并决定需要发送给客户端的内容,然后它实际获取文档。

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    我对查询阶段的第 1 点有疑问。据我了解 在查询阶段本身之前,elastic 会找到相关文档 基于搜索查询中的单词的倒排索引中的 id。然后查询 只会去特定的分片,而不是去每个分片。就是它 对吗?

    这里 elastic 将在查询阶段之前根据文档 id 识别分片。倒排索引在这里没有出现。一旦查询进入分片,弹性引用倒排索引以查找哪个术语存在于哪个文件/索引中。

    其余内容与您在提到的资源中指出的相同

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-06
      • 2019-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多