如何在RethinkDB中一次创建多个索引?

时间:2013-10-03 07:25:45

标签: rethinkdb

在RethinkDB中,是否可以一次创建多个索引? 像(不起作用)的东西:

r.db('test').table('user').indexCreate('name').indexCreate('email').run(conn, callback)

1 个答案:

答案 0 :(得分:1)

索引创建是一项相当重要的操作,因为它需要扫描现有文档以使索引更新。理论上可以允许同时创建2个索引,以便它们并行执行此过程并将工作减半。我们现在不支持它。

但我怀疑这不是你要问的。如果你只是想找到一种方法,不必等待索引完成,然后回来开始下一个,最好的办法是:

table.index_create("foo").run(noreply=True)
# returns immediately
table.index_create("bar").run(noreply=True)
# returns immediately

通过将它们放入如下所示的数组中,您也可以始终在单个查询中执行任意数量的写入:

r.expr([table.index_create("foo"), table.index_create("bar")]).run()

我实际上无法想到为什么这对索引创建有用,因为索引写入在索引准备好之前不会阻塞但是嘿谁知道。它在表创建中非常有用。