有谁知道如何在 PostgreSQL 9.2 中为 JSON 数据创建索引?
示例数据:
[
{"key" : "k1", "value" : "v1"},
{"key" : "k2", "value" : "v2"}
]
说如果我想索引所有键怎么做?
谢谢。
有谁知道如何在 PostgreSQL 9.2 中为 JSON 数据创建索引?
示例数据:
[
{"key" : "k1", "value" : "v1"},
{"key" : "k2", "value" : "v2"}
]
说如果我想索引所有键怎么做?
谢谢。
至少现在,将 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
目前没有直接索引 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/