PyMongo文本搜索的使用方法
PyMongo文本搜索可以使用MongoDB的$text操作符实现,在PyMongo中可以使用find方法进行搜索。
在实现文本搜索之前,需要先创建一个text索引。 这个索引可以指定需要进行文本搜索的字段,并且文本搜索时,这个字段的值将被分词,建立一个词频表,表中保存了每个单词在该字段中出现的次数。索引建立后,可以使用$text操作符进行文本搜索。
以下是具体的代码演示:
- 创建索引
from pymongo import MongoClient client = MongoClient() db = client['mydb'] collection = db['mycollection'] # 创建text索引 collection.create_index([('content', 'text')])
这里创建了一个text索引,指定了需要进行文本搜索的字段为content。
- 执行文本搜索
# 执行文本搜索 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索引。
相关文章