インストールは、公式にある通りにやればOK。特にハマるところはない。
単体のクエリが通ることを確認した後、Javaアプリからクエリを投げてみると、何故かうまく行かない。
PGroongaのログは、/var/lib/postgresql/13/main/pgroonga.logに出力されるのだが、
2022-01-25 21:57:20.184083|C|12138: -- CRASHED!!! --
2022-01-25 21:57:20.188223|C|12138: /lib/x86_64-linux-gnu/libgroonga.so.0(+0x1fd825) [0x7f4acd85f825]
2022-01-25 21:57:20.188283|C|12138: /lib/x86_64-linux-gnu/libpthread.so.0(+0x153c0) [0x7f4adb0203c0]
2022-01-25 21:57:20.188301|C|12138: /usr/lib/postgresql/13/lib/pgroonga.so(PGrnCheckRLSEnabledSeqScan+0x34) [0x7f4ace447bf4]
2022-01-25 21:57:20.188317|C|12138: /usr/lib/postgresql/13/lib/pgroonga.so(pgroonga_query_text+0x53) [0x7f4ace45a073]
のように出ていて、アプリ側ではなく、PGroonga側でなにか起こっているっぽい。ややこしかったのは、UbuntuのPostgreSQLだとエラーが出るのだが、Windowsに入れたPostgreSQLの方は動作に問題がない。あれこれ試した結果、トランザクションの中で全文検索を行うと、エラーが出ることがわかった。@Transactionalアノテーションを外したらうまく動くようになった。これがPGroongaの仕様なのかわからないけど、とりあえずこれでよしとする。
また、
vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
というログが出てたので、/etc/sysctl.conf に、vm.overcommit_memory=1
を追記した後に、sysctl -pを実行して、オーバーコミットを有効にしておく。