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

如何在Marqo中实现精准关键词搜索,仅返回含指定关键词的文档?

如何在Marqo中仅获取包含指定关键词的文档

Marqo默认的search()方法是基于语义相似度返回排序结果,要实现仅筛选包含指定关键词的文档,可以通过构造结构化查询来实现,以下是几种实用方案:

1. 精确匹配单个关键词(布尔查询)

使用bool查询的must子句,指定文档必须满足的关键词匹配条件(支持多字段同时匹配):

results = mq.index("my-index").search(
    q={
        "bool": {
            "must": [
                {"term": {"Description": "你的目标关键词"}},
                {"term": {"Title": "你的目标关键词"}}
            ]
        }
    }
)
  • 每个term对应一个字段的精确匹配要求,只有所有must条件都满足的文档才会被返回。
  • 注意字段类型:如果字段是keyword类型(不分词),term会匹配整个字段内容;如果是text类型,则匹配分词后的单个词项。

2. 精确匹配连续短语(短语查询)

如果需要匹配连续的完整短语而非单个词,使用match_phrase查询:

results = mq.index("my-index").search(
    q={
        "match_phrase": {
            "Description": "需要匹配的连续短语"
        }
    }
)

这种方式会严格匹配字段中连续出现的目标短语,适合精准定位特定语句片段的场景。

3. 结合语义搜索与关键词过滤

如果想要在语义搜索的基础上,再过滤出包含指定关键词的文档,可以把语义查询和布尔条件结合:

results = mq.index("my-index").search(
    q={
        "bool": {
            "must": [
                {"match": {"Description": "语义搜索查询文本"}},
                {"term": {"Title": "必填关键词"}}
            ]
        }
    }
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:50:23