Pgroogaで多対多のドリルダウン検索(絞り込み候補)
スカラー型のカラムにドリルダウンする場合は
例えばカテゴリのような1対多の関係しかできない。(と思う)
Groongaのベクター型カラムに設定すると、
多対多のドリルダウン検索が可能だけど、Pgroongaで設定する方法をごにょごにょした。
##Mroonga の場合、
Mroongaのストレージモードでテーブルを作成し、
flags "COLUMN_VECTOR" みたいなコメントをつけるとできてた。
create table 検索対象テーブル(
//その他カラムの定義
tag(ドリルダウンしたいカラム、空白区切りで登録) TEXT COMMENT 'flags "COLUMN_VECTOR", type "tag管理用テーブル"',
FULLTEXT INDEX tag_vector_index(tag) COMMENT 'table "tag管理用テーブル"',
);
CREATE TABLE tag管理用テーブル (
name VARCHAR(191) PRIMARY KEY
) ENGINE=Mroonga COMMENT='default_tokenizer "TokenDelimit"';
##Pgroongaの場合
カラムに特にベクターカラムを定義する方法がドキュメントにない。
CREATE INDEX インデクス名 ON テーブル名 USING pgroonga (カラム名);
どっこい、配列型のカラムにインデクス定義する方法がドキュメントにのってるので
試してみると。
CREATE INDEX インデクス名 ON テーブル名 USING pgroonga (配列型のカラム);
SELECT pgroonga_command('select groongaテーブル名');
ベクター型カラムになっている。
やったぜ!!
SELECT pgroonga_command('select groongaテーブル名 hogehoge --drilldown 配列型のカラム ');
とすると 多対多の絞り込み候補がでてくる。