有谁知道如何在PostgreSQL 9.2中为JSON数据创建索引?
示例数据:
[
{"key" : "k1", "value" : "v1"},
{"key" : "k2", "value" : "v2"}
]
如果我想在所有密钥上编制索引怎么做?
感谢。
答案 0 :(得分:3)
最好将hstore用于索引字段,至少目前是这样。
CREATE INDEX table_name_gin_data ON table_name USING GIN(data);
如果您对全文搜索感兴趣,也可以创建GIST索引。更多信息:http://www.postgresql.org/docs/9.0/static/textsearch-indexes.html
答案 1 :(得分:2)
目前没有直接索引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
答案 2 :(得分:0)
这个问题有点旧,但我认为选择的答案并不是理想的答案。要索引json(json文本中的属性值),我们可以使用带有PLV8的表达式索引(由@a_horse_with_no_name建议)。
Craig Kerstein在解释/演示方面表现出色:
http://www.craigkerstiens.com/2013/05/29/postgres-indexes-expression-or-functional-indexes/