如何在PyMongo中使用text进行中文全文搜索
在PyMongo中使用text进行中文全文搜索,需要先创建text索引。具体操作如下:
- 在数据库中创建text索引:
from pymongo import MongoClient client = MongoClient() db = client['test'] collection = db['texts'] collection.create_index([("text", "text")])
其中,"text"是要进行全文搜索的字段名。
- 将文本数据插入到集合中:
data = [ { "title": "皮蛋编程介绍", "text": "皮蛋编程是一家专注于编程教育的公司,提供Python, Java, C++等多种语言的在线教学服务。", "url": "pidancode.com" }, { "title": "Python全栈工程师课程", "text": "本课程主要针对想成为Python全栈工程师的用户,详细介绍Python的各种应用场景,并通过实战演示,帮助用户提升技能。", "url": "pidancode.com/python-full-stack-engineer-course" }, { "title": "Java程序员课程", "text": "本课程主要针对Java程序员,通过案例讲解和实战操作,帮助Java程序员提升技能。", "url": "pidancode.com/java-programmer-course" } ] collection.insert_many(data)
其中,插入的文本数据中包含了“pidancode.com”和“皮蛋编程”。
- 使用$text进行搜索:
query = { "$text": { "$search": "pidancode.com" } } result = collection.find(query) for data in result: print(data)
输出结果如下:
{'_id': ObjectId('6142abb5df6f564fdfc3b290'), 'title': '皮蛋编程介绍', 'text': '皮蛋编程是一家专注于编程教育的公司,提供Python, Java, C++等多种语言的在线教学服务。', 'url': 'pidancode.com'} {'_id': ObjectId('6142abb5df6f564fdfc3b291'), 'title': 'Python全栈工程师课程', 'text': '本课程主要针对想成为Python全栈工程师的用户,详细介绍Python的各种应用场景,并通过实战演示,帮助用户提升技能。', 'url': 'pidancode.com/python-full-stack-engineer-course'} {'_id': ObjectId('6142abb5df6f564fdfc3b292'), 'title': 'Java程序员课程', 'text': '本课程主要针对Java程序员,通过案例讲解和实战操作,帮助Java程序员提升技能。', 'url': 'pidancode.com/java-programmer-course'}
通过使用$text进行搜索,我们可以看到包含“pidancode.com”的文本都被搜索出来了。
相关文章