6

有谁知道如何在 PostgreSQL 9.2 中为 JSON 数据创建索引?

示例数据:

[
  {"key" : "k1", "value" : "v1"},
  {"key" : "k2", "value" : "v2"}
]

说如果我想索引所有键怎么做?

谢谢。

4

3 回答 3

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

于 2012-10-22T00:56:38.913 回答
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

于 2012-09-26T06:02:34.660 回答
0

这个问题有点老了,但我认为选择的答案并不是理想的答案。要索引 json(json 文本中的属性值),我们可以使用带有 PLV8 的表达式索引(由 @a_horse_with_no_name 建议)。

Craig Kerstein 在解释/演示方面做得很好:

http://www.craigkerstiens.com/2013/05/29/postgres-indexes-expression-or-functional-indexes/

于 2015-11-25T13:50:03.710 回答