これはPGroonga 2.0.0以降用のドキュメントです。PGroonga 1.Xを使っているなら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の違いは次の通りです。