2012-09-25 3 views
6

PostgreSQL 9.2でJSONデータのインデックスを作成する方法を知っている人はいますか?PostgreSQL 9.2でJSONデータをインデックスする方法は?

例データ:

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

言って、私はそれを行うにはどのようにすべてのキーにインデックスを作成する場合は?

ありがとうございました。

+0

クレイグKersteinは実証/説明の偉大な仕事をしていませんか?あなたが答えを受け入れない理由は何ですか? – Ian

+0

私はJSONタイプのサポートPostgreSQL 9.2を評価しており、そのために必要性があります。回答を受け取ることができない設定はありませんか?そんなことはありますか? – ankurvsoni

+0

多分私を見てみましょう:http://people.planetpostgresql.org/andrew/index.php?/archives/249-Using-PLV8-to-index-JSON.html – Ian

答えて

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

2

現在、JSONを直接索引付けする組み込み関数はありません。しかし、関数がJavaScriptで書かれた関数ベースのインデックスでそれを行うことができます。

詳細については、このブログ記事を参照してください:それはJavaScriptで使用することができますどのようにJSONと話して、そこから別のブログ記事はhttp://people.planetpostgresql.org/andrew/index.php?/archives/249-Using-PLV8-to-index-JSON.html

あり:http://www.postgresonline.com/journal/archives/272-Using-PLV8-to-build-JSON-selectors.html

+0

私の場合、私はすべてのものをインデックスする必要がありますjsonオブジェクト内にあります。それを行う方法はありますか? – ankurvsoni

+0

@ankurvsoni:いいえ、そうは思わない。 –

+0

9.3以降、[JSON関数と演算子](http://www.postgresql.org/docs/9.3/static/functions-json.html)があります。 – dukedave

0

この質問は少し古いですが、私は選択された答えは本当に理想的なものではないと思います。 json(jsonテキスト内のプロパティ値)を索引付けするには、PLV8(@a_horse_with_no_nameで示される)で式索引を使用できます。あなたはプレーンなJSONを格納し、表の列に分離していない理由あり

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

関連する問題