首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >全文搜索MongoDB/Mongoengine

全文搜索MongoDB/Mongoengine
EN

Stack Overflow用户
提问于 2013-10-18 11:57:43
回答 3查看 2.2K关注 0票数 3

新版本的MongoDB允许全文搜索。这部分对我来说很好:

代码语言:javascript
复制
db.collection.runCommand('text',{search:<keyword>})

但是,我不确定是否可以在python的mongoengine中运行它。有没有人知道是否有一种使用mongoengine或解决方法运行"runCommand“的方法?

(我在我的项目中使用了mongoengine,我不想为了pymongo而放弃它,因为它可能意味着要重新编码许多东西。)

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-22 13:01:35

您可以直接使用pymongo来使用MongoEngine:

代码语言:javascript
复制
class MyDoc(Document):
    pass

coll = MyDoc._get_collection()
coll.database.command(
    "text",
    coll.name,
    search="alice", 
    project={"name": 1, "_id": 0}, 
    limit=10)
票数 4
EN

Stack Overflow用户

发布于 2021-12-10 14:32:40

这个问题很老,但我还是碰到了同样的问题。MongoEngine现在直接启用文本搜索。

首先,在所需字段上创建文本索引:

代码语言:javascript
复制
class MyDoc(Document):
   document_name = StringField()
   document_content = StringField()

   meta = {
      'indexes': [
         {
            'fields': [
               '$document_name',
               '$document_content'
            ]
         }
      ]
   }

然后,可以使用search_text函数搜索文档:

代码语言:javascript
复制
document = News.objects.search_text('testing')

MongoEngine文本搜索文档获取更多详细信息。

票数 1
EN

Stack Overflow用户

发布于 2013-10-18 12:21:10

Pymongo为此使用keyord参数。见文档

就你而言,db.command('text', 'colection_name', seach='keyword')

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19449103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档