新版本的MongoDB允许全文搜索。这部分对我来说很好:
db.collection.runCommand('text',{search:<keyword>})但是,我不确定是否可以在python的mongoengine中运行它。有没有人知道是否有一种使用mongoengine或解决方法运行"runCommand“的方法?
(我在我的项目中使用了mongoengine,我不想为了pymongo而放弃它,因为它可能意味着要重新编码许多东西。)
谢谢!
发布于 2013-10-22 13:01:35
您可以直接使用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)发布于 2021-12-10 14:32:40
这个问题很老,但我还是碰到了同样的问题。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文本搜索文档获取更多详细信息。
发布于 2013-10-18 12:21:10
Pymongo为此使用keyord参数。见文档。
就你而言,db.command('text', 'colection_name', seach='keyword')。
https://stackoverflow.com/questions/19449103
复制相似问题