跟上新的信息检索技术固然重要,但同样重要的是不要破坏那些经过验证并已经展现出商业价值的组件。
尽管AI 驱动的向量搜索不断发展,但现实情况是大多数公司仍在依赖传统的搜索技术,通常使用 BM25 算法的变体。这是一项可靠且经过时间考验的技术。切换到一个全新的系统不仅是一个重大步骤,而且往往不切实际,需要大量资源和彻底的运营改革。此外,BM25 是词法搜索引擎的基石,在 Elasticsearch 和 Solr 等广泛使用的搜索引擎平台中普遍应用。对于许多使用场景,它已经能够提供良好的结果。
因此,尽管有令人信服的证据表明基于 AI 的搜索能够显著提高用户满意度和结果质量,许多公司仍然对完全转向神经搜索持犹豫态度。
tag检索无关的神经重排序
Reranker 是搜索系统领域的一个突破性补充。它被设计用来提升现有搜索引擎(如 Elasticsearch)的价值,作为一个额外的层级,像插件一样工作以提升搜索质量。它不需要知道它所连接的是什么类型的搜索技术,只需要接收匹配列表并重新排序以获得更好的结果。
Jina Reranker 为传统搜索技术增加了更深层次的理解能力。像 BM25 这样的算法在基于词频检索文档方面做得很好,但在根据用户意图评估所检索文本的含义方面却存在困难。这正是 AI 擅长的领域:Reranker 帮助产生更符合用户需求的结果。
因此,对于希望将 AI 模型的强大优势引入其搜索框架的企业来说,添加 Jina Reranker 可能是一个明智的决定,而且不会带来替换现有搜索底座设施的负担。这是关于优化搜索结果,使其不仅可以接受,而且卓越:更相关、更准确。
tag为什么选择 Jina Reranker?
在重排序模型中,Jina Reranker 模型以其在性能基准测试中的最先进成绩而脱颖而出。

在本文中,我们将展示如何为电子商务平台实现推荐系统。首先,我们将分析单独使用 BM25 检索器的性能。然后,我们将 Jina Reranker 添加到检索管道中,看看结果如何变得更相关和有效。
tag将 Jina Reranker 添加到现有工作流程中:

以下是集成 Jina Reranker 的更新工作流程的细节:
- 初始检索:当输入查询时,BM25 搜索引擎主要根据查询词与文档的匹配来检索相关文档。
- 重排序:jina-reranker-v1-base-en 接收这些初始结果,并使用最先进的 AI 根据用户的查询评估每个检索文档的相关性。
- 返回结果:Jina Reranker 然后重新排序搜索结果,确保最相关的文档显示在顶部。
我们的易用的 API 和全面的文档将指导您完成整个过程,只需对您的系统进行最小的更改。

tag实践展示:用 Jina Reranker 增强电子商务搜索

让我们通过一个实际的电子商务示例来展示 Jina Reranker 在实际应用中的影响。这里的目标是基于用户的查询搜索产品列表。
为了说明这一点,我们将使用流行的 AI 搜索和编排框架 Haystack by deepset 设置两个搜索管道。第一个管道单独使用 BM25。第二个将 jina-reranker-v1-base-en 集成到 BM25 系统中。如果您有现有的 Elasticsearch 集群,可以轻松地用 ElasticsearchDocumentStore 替换 Haystack 的 InMemoryDocumentStore 组件来进行相同的实验。
我们将使用来自 Kaggle 的样本数据集。您可以直接在这里下载 CSV。这个并排比较展示了将 Jina Reranker 集成到搜索工作流程中带来的改进。
首先,安装所有必需的组件:
pip install --q haystack-ai jina-haystack
将 Jina API Key 设置为环境变量。您可以在这里生成一个。
import os
import getpass
os.environ["JINA_API_KEY"] = getpass.getpass()
根据产品名称查询产品。例如:
short_query = "Nightwear for Women"
将每个 CSV 行转换为 Document:
import csv
from haystack import Document
documents = []
with open("fashion_data.csv") as f:
data = csv.reader(f, delimiter=";")
for row in data:
row_text = ''.join(row)
row_doc = Document(content=row_text, meta={"prod_id": row[0], "prod_image": row[1]})
documents.append(row_doc)
tagPipeline #1:仅使用 BM25
from haystack import Pipeline
from haystack.document_stores.types import DuplicatePolicy
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack.components.retrievers.in_memory import InMemoryBM25Retriever
document_store=InMemoryDocumentStore()
document_store.write_documents(documents=documents, policy=DuplicatePolicy.OVERWRITE)
retriever = InMemoryBM25Retriever(document_store=document_store)
rag_pipeline = Pipeline()
rag_pipeline.add_component("retriever", retriever)
result = rag_pipeline.run(
{
"retriever": {"query": query, "top_k": 50},
}
)
for doc in result["retriever"]["documents"]:
print("Product ID:", doc.meta["prod_id"])
print("Product Image:", doc.meta["prod_image"])
print("Score:", doc.score)
print("-"*100)
以下是 BM25 返回的 50 个结果的缩略图:

我们可以看到,结果与睡衣相关,部分匹配查询,但最相关的匹配(网格中加粗的图片)似乎在 BM25 检索的众多产品中迷失了。在实践中,仅使用 BM25 意味着用户会在页面顶部看到主要不相关的结果。
tagPipeline #2:BM25 + Jina Reranker
以下脚本概述了如何逐步构建这个管道:
from haystack_integrations.components.rankers.jina import JinaRanker
ranker_retriever = InMemoryBM25Retriever(document_store=document_store)
ranker = JinaRanker()
ranker_pipeline = Pipeline()
ranker_pipeline.add_component("ranker_retriever", ranker_retriever)
ranker_pipeline.add_component("ranker", ranker)
ranker_pipeline.connect("ranker_retriever.documents", "ranker.documents")
result = ranker_pipeline.run(
{
"ranker_retriever": {"query": query, "top_k": 50},
"ranker": {"query": query, "top_k": 10},
}
)
for doc in result["ranker"]["documents"]:
print("Product ID:", doc.meta["prod_id"])
print("Product Image:", doc.meta["prod_image"])
print("Score:", doc.score)
print("-"*100)
以下是 Jina Reranker 返回的前 10 个结果:

与 BM25 相比,Jina Reranker 返回了更相关的结果集。在我们的电商环境中,这意味着更好的用户体验和更高的购买可能性。
tag将 Jina Reranker 与 BM25 集成的影响
根据我们在电商领域的案例研究,很明显 Jina Reranker 与 Elasticsearch 等传统搜索引擎的集成标志着搜索技术的重大飞跃。以下是这种集成如何改善搜索体验的概述:
- 提升命中率:Jina Reranker 和传统搜索的融合显著提高了相关结果的频率。这使搜索过程更准确,更贴近用户查询。
- 改善用户体验:搜索结果质量有明显提升。这表明 Jina Reranker 和 BM25 的组合能力更好地满足了用户的具体需求,提升了整体搜索体验。
- 复杂查询的高精度:在处理困难搜索时,这种协同确保了对查询和相关内容更深入的理解。这转化为更精确、更准确的结果。
tag准备提升您的搜索体验?
Jina Reranker 是提高搜索结果相关性的理想解决方案。它可以无缝集成到您现有的搜索系统中,并且只需少量代码就能快速实现。
如果您对目前所读的内容感兴趣,并渴望看到 Jina Reranker 能带来的改变,为什么不试一试呢?开始您的旅程,亲身体验 Jina AI 的 Search Foundation 模型在您自己环境中的变革力量。









