文本索引
概述
文本索引 支持对字符串内容的文本搜索查询。这些索引可以包括任何值是字符串或字符串元素数组的字段。MongoDB 支持多种语言的文本搜索。您可以在创建索引时指定默认语言作为选项。
提示
MongoDB 提供了改进的全文搜索解决方案,Atlas Search。有关 Atlas Search 索引及其使用方法的更多信息,请参阅Atlas Search 和向量搜索索引指南。
示例数据
本指南中的示例使用来自 Atlas 示例数据集 的 sample_mflix.movies
集合。有关创建免费 MongoDB Atlas 集群和加载数据集的说明,请参阅 PyMongo 入门。
单字段上的文本索引
以下示例在plot
字段上创建文本索引
movies.create_index( [( "plot", "text" )] )
以下是一个使用前一个代码示例中创建的索引的查询示例
query = { "$text": { "$search": "a time-traveling DeLorean" } } cursor = movies.find(query)
多字段上的文本索引
一个集合只能包含一个文本索引。如果需要为多个文本字段创建文本索引,请创建复合索引。文本搜索将在复合索引中的所有文本字段上运行。
以下示例为title
和genre
字段创建复合文本索引
result = myColl.create_index( [("title", "text"), ("genre", "text")], default_language="english", weights={ "title": 10, "genre": 3 } )