これはPGroonga 2.X and 3.X用のドキュメントです。古いPGroongaを使っているならPGroonga 1.xのドキュメントを見てください。
jsonb
サポートPGroongaはjsonb
型にも対応しています。PGroongaを使うとJSON中のキー・値に対して検索することができます。
JSON中のすべてのテキスト値に対して全文検索することもできます。これはPGroonga独自の機能です。PostgreSQL組み込みの機能でもJsQueryでもこの機能はサポートしていません。
次のJSONを考えてください。
{
"message": "Server is started.",
"host": "www.example.com",
"tags": [
"web",
]
}
server
、example
、web
のどれで全文検索してもこのJSONを見つけることができます。なぜなら、すべてのテキスト値が全文検索対象だからです。
PGroongaはjsonb
に対して検索するために次の2つの演算子を提供しています。
@>
演算子は@@
演算子よりもシンプルですが範囲検索のような複雑な条件を指定することはできません。
@@
演算子は@>
演算子より複雑ですが、複雑な条件も使えます。JSON内のすべてのテキスト値に対する全文検索もできます。
PostgreSQLは組み込みの機能としてGINを使った高速なjsonb
検索機能を提供しています。
PGroongaとGINの違いは次の通りです。