- MongoEngine 教程
- MongoEngine - 主页
- MongoEngine - MongoDB
- MongoEngine - MongoDB Compass
- MongoEngine - 对象文档映射
- MongoEngine - 安装
- MongoEngine - 连接 MongoDB 数据库
- MongoEngine - 文档类
- MongoEngine - 动态模式
- MongoEngine - 字段
- MongoEngine - 添加/删除文档
- MongoEngine - 查询数据库
- MongoEngine - 过滤器
- MongoEngine - 查询运算符
- MongoEngine - QuerySet 方法
- MongoEngine - 排序
- MongoEngine - 自定义查询集
- MongoEngine - 索引
- MongoEngine - 聚合
- MongoEngine - 高级查询
- MongoEngine - 文档继承
- MongoEngine - 原子更新
- MongoEngine - Javascript
- MongoEngine - GridFS
- MongoEngine - 信号
- MongoEngine - 文本搜索
- MongoEngine - 扩展
- MongoEngine 有用资源
- MongoEngine - 快速指南
- MongoEngine - 有用资源
- MongoEngine - 讨论
MongoEngine - 文本搜索
MongoDB 支持使用可以在字符串内容上执行文本搜索的查询运算符。如前所述,为了设置文本索引,使用 $ 符号前缀索引的名称。对于文本索引,索引字段的权重表示索引字段相对于其他索引字段在文本搜索分数方面的相对重要性。你也可以在类的元数据词典中指定默认语言。
可在 https://docs.mongodb.com/manual/reference/text-search-languages/ 中找到支持的语言列表。MongoEngine API 包括 QuerySet 对象的 search_text() 方法。作为参数提供要再索引字段中搜索的字符串。
在以下示例中,我们首先定义一个名为 lang 的文档类,其中包含两个字符串字段,语言名称和其特点。我们还使用各自的权重在这两个字段上创建了索引。
from mongoengine import *
con=connect('newdb')
class lang (Document):
name=StringField()
features=StringField()
meta = {'indexes': [
{'fields': ['$name', "$features"],
'default_language': 'english',
'weights': {'name': 2, 'features': 10}
}]
}
l1=lang()
l1.name='C++'
l1.features='Object oriented language for OS development'
l1.save()
l2=lang()
l2.name='Python'
l2.features='dynamically typed and object oriented for data science, AI and ML'
l2.save()
l3=lang()
l3.name='HTML'
l3.features='scripting language for web page development'
l3.save()
为了对单词“oriented”执行搜索,我们按如下方式使用 search_text() 方法——
docs=lang.objects.search_text('oriented')
for doc in docs:
print (doc.name)
上面代码的输出将是其描述中出现单词“oriented”的语言的名称(本例中是“Python 和“C++”)。
广告