Text Indexes
Overview
文本索引支持对字符串内容进行文本搜索查询。这些索引可以包括任何值为字符串或字符串元素数组的字段。MongoDB 还支持各种语言的文本搜索。在创建索引时,可以指定默认语言作为选项。
提示
MongoDB提供改进的全文搜索解决方案 Atlas Search 。要学习;了解有关Atlas Search索引及其使用方法的更多信息,请参阅 Atlas Search和 Vector Search 索引指南。
样本数据
本指南中的示例使用Atlas 样本数据集中的 sample_mflix.movies
集合。 要了解如何创建免费的MongoDB Atlas cluster并加载样本数据集,请参阅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 } )