9. カラム圧縮 (実験的)
なお、カラム圧縮機能を使うためには使っている
GroongaがzlibまたはLZ4をサポートしている必要が
あります。それらは以下のコマンドを実行することで、
システム変数として確認できます。
SHOW GLOBAL VARIABLES LIKE 'mroonga_libgroonga_support_zlib';
SHOW GLOBAL VARIABLES LIKE 'mroonga_libgroonga_support_lz4';
12. トークンフィルタ
CREATE TABLE terms (
term VARCHAR(64) NOT NULL PRIMARY KEY,
is_stop_word BOOL NOT NULL
) Engine=Mroonga COMMENT='default_tokenizer "TokenBigram", token_filters "TokenFilterStopWord"' DEFAULT CHARSET=utf8mb4;
CREATE TABLE memos (
content TEXT
FULLTEXT INDEX (content) COMMENT 'table "terms"'
) Engine=Mroonga DEFAULT CHARSET=utf8mb4;
INSERT INTO terms VALUES ("and", true);
上記のように語彙表( terms テーブル)に is_stop_word カラムを
用意して、ストップワードの対象となる語句をPRIMARY KEYとします。
ストップワードの is_stop_word の値は true として insert します。
13. トークンフィルタ
この場合 and がストップワードとして登録されているので、
次のように Hello and で検索しても and をストップワードと
して扱い、無視します。つまり、 Hello で検索したのと同じ
結果になります。
SELECT *
FROM memos
WHERE MATCH (content) AGAINST ("+Hello +and" IN BOOLEAN MODE);