You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Marqo的search()方法仅获取最优匹配的文档结果

问题:Marqo搜索如何仅返回最优匹配结果?

用Marqo的search()方法检索文档时,返回结果里的hits是按匹配度从高到低排序的字典列表,但我只需要展示最优匹配项。目前已经通过列表索引取首个元素实现了需求,但想知道有没有Marqo原生方法能直接做到。

当前返回结果示例:

{
    'hits': [
        {   
            'Title': first_documents title,
            'Description': first_documents description,
            '_highlights': {
                'Description': the part of the document that matches the best,
            },
            '_id': document_id,
            '_score': 1.2387788
        }, 
        {   
            'Title': second_documents title,
            'Description':second_documents description,
            '_highlights': {'Title': the part that matches the best},
            '_id': document_id,
            '_score': 1.2047464
        }
    ],
    'limit': 10,
    'processingTimeMs': 49,
    'query': search_query 
}

期望结果示例:

{
        'hits': [
            {   
                'Title': first_documents title,
                'Description': first_documents description,
                '_highlights': {
                    'Description': the part of the document that matches the best,
                },
                '_id': document_id,
                '_score': 1.2387788
            }],
        'limit': 1,
        'processingTimeMs': 49,
        'query': search_query 
}

回答

直接在search()方法中设置limit=1参数即可,这是Marqo原生支持的方式,返回结果的hits列表里只会包含匹配度最高的那一项,无需手动处理列表索引。

示例代码:

# 假设mq是你的Marqo客户端实例,index_name是目标索引名
result = mq.index(index_name).search(
    query="你的搜索关键词",
    limit=1
)

这样返回的result结构就和你期望的一致,hits里仅保留最优匹配的文档,同时limit字段会显示为1(对应你设置的参数)。

内容的提问来源于stack exchange,提问作者Ndaman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 21:40:58