你能在文本搜索中将权重传递给PyMongo中的create_index吗?

时间:2015-11-19 18:17:57

标签: python mongodb pymongo

我有一个自动化过程,可以在Mongo实例的各个字段上创建文本索引(当前的Mongo 2.6 / PyMongo 2.72)。

from pymongo import MongoClient, TEXT
db = MongoClient()
collection = db.collection

collection.create_index([("foo",TEXT), ("bar",TEXT), ("baz",TEXT)])

我想根据Mongo docs对集合进行加权。在Mongo shell中,这将是:

db.collection.create_index( { foo: text, bar: text, baz: text}, {weights: {foo: 10, bar: 5, baz 1}})

但是,因为我在Python中这样做而不是Mongo shell。 PyMongo支持这个吗?

1 个答案:

答案 0 :(得分:4)

在Python(PyMongo 2.4.2和更新版本)中,索引声明如下所示:

collection.create_index(
    [
        ('foo', TEXT),
        ('bar', TEXT),
        ('baz', TEXT)
    ],
    weights={
        'foo': 10,
        'bar': 5,
        'baz': 1
    }
)