全文搜索MongoDB/Mongoengine



新版本的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').

最新更新