有人知道如何在PostgreSQL 9.2上对JSON数据创建索引吗?
示例数据:
示例数据:
[
{"key" : "k1", "value" : "v1"},
{"key" : "k2", "value" : "v2"}
]
如果我想在所有的键上建立索引,该怎么做?
谢谢。
[
{"key" : "k1", "value" : "v1"},
{"key" : "k2", "value" : "v2"}
]
如果我想在所有的键上建立索引,该怎么做?
谢谢。
目前来看,对于需要建立索引的字段,使用hstore会更好。
CREATE INDEX table_name_gin_data ON table_name USING GIN(data);
目前没有内置函数可以直接索引JSON。但是您可以使用基于JavaScript编写的函数来进行索引。
有关详细信息,请参见此博客文章:http://people.planetpostgresql.org/andrew/index.php?/archives/249-Using-PLV8-to-index-JSON.html
还有另一篇博客文章介绍了JSON以及如何与JavaScript一起使用:http://www.postgresonline.com/journal/archives/272-Using-PLV8-to-build-JSON-selectors.html
这个问题有点老了,但我认为所选答案并不是真正理想的。要索引json(json文本内的属性值),我们可以使用PLV8的表达式索引(由@a_horse_with_no_name建议)。
Craig Kerstein做了很好的解释/演示:
http://www.craigkerstiens.com/2013/05/29/postgres-indexes-expression-or-functional-indexes/