加载中

排名和重新排名

Elastic Stack Serverless

许多搜索系统都建立在多阶段检索管道之上。

早期阶段使用廉价、快速的算法来查找广泛的潜在匹配项。

后期阶段使用更强大的模型,通常是基于机器学习的模型,来重新排序文档。这个步骤称为重排。由于资源密集型模型仅应用于经过预过滤的小型结果集,因此这种方法可以在优化搜索性能和计算成本的同时,返回更相关结果。

Elasticsearch 支持各种排名和重排技术,以优化搜索相关性和性能。

Elasticsearch 根据词频和逆文档频率对文档进行排名,并根据文档长度进行调整。BM25 是 Elasticsearch 中默认的统计评分算法。

向量搜索涉及将数据转换为密集或稀疏向量嵌入,以捕捉语义含义,并计算查询向量的相似度分数。使用 semantic_text 字段存储向量以实现自动推断和向量化,或者在需要对底层嵌入模型进行更多控制时使用 dense_vectorsparse_vector 字段。使用 semanticknnsparse_vector 查询来查询向量字段,以计算相似度分数。有关更多信息,请参阅语义搜索

混合搜索技术将全文搜索和向量搜索管道的结果相结合。Elasticsearch 允许使用倒数排名融合 (RRF) 算法结合词汇匹配 (BM25) 和向量搜索分数。

在使用以下高级重排管道时,第一阶段的检索机制会有效地生成一组候选集。这些候选集被输送到重排器,以执行计算成本更高的重排任务。

语义重排 使用机器学习模型,根据搜索结果与查询的语义相似度来重新排序。模型可以直接托管在 Elasticsearch 集群中,也可以使用推断端点来调用第三方服务提供的模型。语义重排能够对现有的全文搜索索引提供开箱即用的语义搜索功能。

学习排序 适用于高级用户。学习排序涉及训练一个机器学习模型,为您的搜索体验构建一个会随时间更新的排序函数。当您拥有充足的训练数据并需要高度定制化的相关性调整时,LTR 是最佳选择。

© . This site is unofficial and not affiliated with Elasticsearch BV.