groongaについて

CBPosted by

みなさんはGroongaって知ってますか?
solrと同じような機能を持つ日本発の検索エンジンです。
通常はsolrを使って全文検索をするのですが、postgresql内で全文検索をするニーズがあり調べたところPGroongaという拡張機能があることを知りました。内部的にはGroongaを使っているようで、postgresqlで発行するSQLで直接全文検索が出来てしまうのです。
同様な機能として、textsearch_ja+Mecabというパターンもあります。
PGroongaもMecabは使用できるのですが基本的にはBigramを使用しています。これは2文字で区切って一文字分ずつシフトしていってインデックスを作っていく方法で、漏れが少ないというメリットがあります。Mecabは形態素解析という方法で単語単位に切り出してインデックスを作成していきます。
例えば「東京都」の場合bigramだと「東京」「京都」になり
Mecabだと「東京」「都」になります。このためbigramだと本来の意味とは違う「京都」もヒットします。
現在はpostgresqlにtextsearch_jaとPGroongaを両方導入してテストしています。結果がわかったらまた報告します。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA