新版本的 MongoDB 允许全文搜索。那部分对我来说运行良好:
db.collection.runCommand('text',{search:<keyword>})
但是,我不确定是否可以通过 python 的 mongoengine 运行它。有谁知道是否有办法使用 mongoengine 或解决方法运行“runCommand”?
(我在我的项目中使用 mongoengine,我不想为 pymongo 放弃它,因为这可能意味着重新编码很多东西。)
谢谢!
新版本的 MongoDB 允许全文搜索。那部分对我来说运行良好:
db.collection.runCommand('text',{search:<keyword>})
但是,我不确定是否可以通过 python 的 mongoengine 运行它。有谁知道是否有办法使用 mongoengine 或解决方法运行“runCommand”?
(我在我的项目中使用 mongoengine,我不想为 pymongo 放弃它,因为这可能意味着重新编码很多东西。)
谢谢!
您可以通过直接使用 pymongo 来使用 MongoEngine,例如:
class MyDoc(Document):
pass
coll = MyDoc._get_collection()
coll.database.command(
"text",
coll.name,
search="alice",
project={"name": 1, "_id": 0},
limit=10)
这个问题很老,但我碰到了同样的问题。MongoEngine 现在可以直接启用文本搜索。
首先,在必填字段上创建一个文本索引:
class MyDoc(Document):
document_name = StringField()
document_content = StringField()
meta = {
'indexes': [
{
'fields': [
'$document_name',
'$document_content'
]
}
]
}
然后,可以使用search_text函数搜索文档:
document = News.objects.search_text('testing')
MongoEngine 文本搜索文档以获取更多详细信息。
Pymongo 为此使用 keyord 参数。请参阅文档。
在你的情况下db.command('text', 'colection_name', seach='keyword')
。