如何使用 pymongo 创建索引 [重复]

Posted

技术标签:

【中文标题】如何使用 pymongo 创建索引 [重复]【英文标题】:How can I create an index with pymongo [duplicate] 【发布时间】:2016-02-06 02:16:27 【问题描述】:

我想在 Mongo DB 的特定字段中启用文本搜索。我想在 python (-> pymongo) 中实现这个搜索。当我按照互联网上的说明进行操作时:

db.foo.ensure_index(('field_i_want_to_index', 'text'), name="search_index")

我收到以下错误消息:

    Traceback (most recent call last):
    File "CVE_search.py", line 8, in <module>
    db.foo.ensure_index(('field_i_want_to_index', 'text'), name="search_index")
 File "/usr/local/lib/python2.7/dist-packages/pymongo/collection.py", line 1599, in ensure_index
        return self.create_index(key_or_list, cache_for, **kwargs)
      File "/usr/local/lib/python2.7/dist-packages/pymongo/collection.py", line 1466, in create_index
        index_doc = helpers._index_document(keys)
      File "/usr/local/lib/python2.7/dist-packages/pymongo/helpers.py", line 100, in _index_document
            for (key, value) in index_list:
    ValueError: too many values to unpack

在 pymongo 中创建索引是否有不同/更好的方法?

【问题讨论】:

【参考方案1】:

使用 create_index 方法将键作为数组传递,TEXT 作为索引方向:

collection.create_index([('field_i_want_to_index', pymongo.TEXT)], name='search_index', default_language='english')

【讨论】:

当我使用 db.command('text', 'foo', search=query) 搜索索引时,如何查询多个单词? @PeterFox 好问题,但我建议您为此创建一个新问题,然后我们可以从那里开始。

以上是关于如何使用 pymongo 创建索引 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Pymongo / MongoDB:创建索引还是确保索引?

mysql “索引”能重复吗?“唯一索引”与“索引”区别是啥?

一日一技:MongoDB如何正确中断正在创建的索引

一个不留神,索引就创建重复了

MySQL 是不是使用现有索引来创建新索引?

如何跳过重复索引上的错误并继续在 MongoDB 中进一步添加文档(pymongo)