文档菜单

文档首页开发应用程序Python 驱动PyMongo

文本索引

本页内容

  • 概述
  • 示例数据
  • 单字段的文本索引
  • 多字段的文本索引

文本索引 支持对字符串内容的文本搜索查询。这些索引可以包含任何值是字符串或字符串元素数组的字段。MongoDB 支持多种语言的文本搜索。您可以在创建索引时指定默认语言作为选项。

提示

MongoDB 提供了改进的全文搜索解决方案,Atlas Search. 要了解有关 Atlas Search 索引及其使用方法的更多信息,请参阅 Atlas Search 索引 指南。

本指南中的示例使用sample_mflix.movies 集合来自Atlas 示例数据集。要了解如何创建免费的 MongoDB Atlas 集群并加载示例数据集,请参阅PyMongo 入门。

以下示例在 plot 字段上创建文本索引

movies.create_index(
[( "plot", "text" )]
)

以下是一个使用前面代码示例中创建的索引的查询示例

query = { "$text": { "$search": "a time-traveling DeLorean" } }
cursor = movies.find(query)

集合只能包含一个文本索引。如果您想要为多个文本字段创建文本索引,请创建一个组合索引。文本搜索将在组合索引中的所有文本字段上运行。

以下示例为 titlegenre 字段创建组合文本索引

result = myColl.create_index(
[("title", "text"), ("genre", "text")],
default_language="english",
weights={ "title": 10, "genre": 3 }
)

有关更多信息,请参阅 MongoDB 服务器手册中的组合文本索引限制文本索引

← Atlas 搜索索引