PyMongo文本搜索的使用方法

2023-04-15 00:00:00 pymongo 文本 使用方法

PyMongo文本搜索可以使用MongoDB的$text操作符实现,在PyMongo中可以使用find方法进行搜索。

在实现文本搜索之前,需要先创建一个text索引。 这个索引可以指定需要进行文本搜索的字段,并且文本搜索时,这个字段的值将被分词,建立一个词频表,表中保存了每个单词在该字段中出现的次数。索引建立后,可以使用$text操作符进行文本搜索。

以下是具体的代码演示:

  1. 创建索引
from pymongo import MongoClient

client = MongoClient()
db = client['mydb']
collection = db['mycollection']

# 创建text索引
collection.create_index([('content', 'text')])

这里创建了一个text索引,指定了需要进行文本搜索的字段为content。

  1. 执行文本搜索
# 执行文本搜索
result = collection.find({'$text': {'$search': 'pidancode.com'}})

for doc in result:
    print(doc)

这段代码执行了一个文本搜索,搜索的关键词为“pidancode.com”,搜索结果保存在result变量中。然后遍历搜索结果,输出每个文档的内容。

关键字搜索还支持多关键字搜索,例如:

result = collection.find({'$text': {'$search': 'pidancode.com 编程'}})

这段代码则会搜索包含“pidancode.com”和“编程”两个关键词的文档。

需要注意的是,$text操作符只能用在建立了text索引的字段上。如果要搜索的字段没有建立索引,则需要先创建一个text索引。

相关文章