Docs 菜单
Docs 主页
/ /

使用MongoDB Vector Search 和MongoDB Search 执行混合搜索

本教程演示了一种混合搜索,它是针对相同查询条件的全文搜索和语义搜索的聚合。虽然全文搜索对于查询词的精确匹配很有效,但语义搜索还提供了一个额外好处,即使文档不包含精确的查询词,也能识别语义相似的文档。这确保了同义匹配和上下文相似的匹配项也包含在两种搜索方法的组合结果中。

相反,如果数据集中有专有名词或特定关键词的词元,这些词元在数据集中使用的上下文相同,您不希望在培训嵌入模型时考虑这些词元,则向量搜索可能会受益于与全文搜索相结合。

您还可以为每个查询的每种搜索方法设立权重。根据全文或语义搜索结果是否与查询最相关且最合适,您可以增加每个查询的搜索方法的权重。

本教程演示如何结合MongoDB Vector Search 和MongoDB Search 查询对 sample_mflix.embedded_movies集合(包含电影详细信息)运行混合搜索,以获得统一的搜索结果。具体来说,本教程将指导您完成以下步骤:

  1. plot_embedding_voyage_3_large字段上创建MongoDB Vector Search索引。该字段包含表示电影情节摘要的向量嵌入。

  2. sample_mflix.embedded_movies集合中的 title字段上创建MongoDB Search索引。此字段包含文本字符串形式的电影名称。

  3. 运行使用$rankFusion$scoreFusion来合并针对plot_embedding_voyage_3_large字段的$vectorSearch查询和针对title字段的$search查询的结果的查询。

在开始之前,请完成先决条件

本部分演示如何在sample_mflix.embedded_moviescollection中的字段上创建以下索引:

  • plot_embedding_voyage_3_large字段上的MongoDB Vector Search索引,用于针对该字段运行向量查询。

  • title字段上的MongoDB 搜索索引,用于对该字段运行全文搜索。

后退

混合搜索

在此页面上