重排序

编辑

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

早期阶段使用廉价、快速的算法来找到广泛的可能匹配项。

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

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

两阶段检索管道

编辑

初始检索

编辑

全文搜索:BM25 评分

编辑

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

向量搜索:相似度评分

编辑

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

混合技术

编辑

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

重排序

编辑

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

语义重排序

编辑

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

学习排序 (LTR)

编辑

学习排序 适用于高级用户。学习排序涉及训练机器学习模型,为您的搜索体验构建一个随时间更新的排名函数。LTR 最适合您拥有大量训练数据并且需要高度定制的相关性调整的情况。