このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
mroonga:10.7:config [2020/11/09 18:05] y2sunlight [トークナイザー(パーサ)] |
mroonga:10.7:config [2020/11/11 10:00] (現在) y2sunlight [TokenMecab] |
||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | > 編集中 | ||
| - | |||
| ====== Mroonga9.12 全文検索の構成 ====== | ====== Mroonga9.12 全文検索の構成 ====== | ||
| Version 9.12 (MariaDB 10.4.12) | Version 9.12 (MariaDB 10.4.12) | ||
| 行 52: | 行 50: | ||
| |リンゴ|りんご|カタカナ < | |リンゴ|りんご|カタカナ < | ||
| - | 結論から先に言うと、ノーマライザーとして [[https:// | + | 結論から先に言うと、ノーマライザーとしては [[https:// |
| \\ | \\ | ||
| 行 211: | 行 209: | ||
| ^トークナイザー^説明^ | ^トークナイザー^説明^ | ||
| - | |none| | | + | |none|トークナイズしません。| |
| - | |TokenDelimit| | | + | |TokenDelimit|空白区切りでトークナイズします。| |
| - | |TokenBigram| | | + | |TokenRegexp|正規表現検索をサポートするトークナイザーです。| |
| - | |TokenTrigram| | | + | |TokenUnigram|ユニグラム(1-Gram)でトークナイズします。| |
| - | |TokenMecab| | | + | |TokenBigram|バイグラム(2-Gram)でトークナイズします。| |
| + | |TokenTrigram|トリグラム(3-Gram)でトークナイズします。| | ||
| + | |TokenMecab|MeCabを用いてトークナイズします。| | ||
| + | |||
| + | デフォルトのパーサは以下で確認できます: | ||
| + | |||
| + | <code sql> | ||
| + | SHOW VARIABLES LIKE ' | ||
| + | </ | ||
| + | |||
| + | デフォルトのトークナイザーはビルド時や '' | ||
| + | |||
| + | my.cnf: | ||
| + | |||
| + | <code ini> | ||
| + | [mysqld] | ||
| + | mroonga_default_tokenizer=TokenMecab | ||
| + | </ | ||
| \\ | \\ | ||
| - | ===== トークンフィルタ― ===== | + | ==== TokenMecab ==== |
| + | |||
| + | 本編で使用している MariaDB with Mroonga (Windows版バイナリ) ではパーサとして形態素解析エンジンの Mecab がバンドルされていて直ぐに利用することができます。Mecab の本体は以下に配置されています: | ||
| + | |||
| + | < | ||
| + | {XAMPP-Folder}/ | ||
| + | </ | ||
| + | |||
| + | Mecabの設定ファイル mecabrc の配置場所と内容を以下の示します: | ||
| + | |||
| + | '' | ||
| + | |||
| + | <code ini> | ||
| + | ; Configuration file of MeCab | ||
| + | |||
| + | dicdir = $(rcpath)\..\share\mecab\dic\naist-jdic | ||
| + | </ | ||
| + | |||
| + | mecabrc では形態素解析で使用する辞書が設定されています。初期設定の辞書としては、Mroongaにバンドルされている [[https:// | ||
| + | |||
| + | 以下は「[[mroonga: | ||
| + | |||
| + | <code sql> | ||
| + | CREATE TABLE diaries_mecab ( | ||
| + | id INT PRIMARY KEY AUTO_INCREMENT, | ||
| + | content VARCHAR(255), | ||
| + | FULLTEXT INDEX (content) COMMENT ' | ||
| + | ) ENGINE = Mroonga COLLATE utf8_unicode_ci; | ||
| + | |||
| + | INSERT INTO diaries_mecab (content) VALUES (" | ||
| + | INSERT INTO diaries_mecab (content) VALUES (" | ||
| + | INSERT INTO diaries_mecab (content) VALUES (" | ||
| + | INSERT INTO diaries_mecab (content) VALUES (" | ||
| + | </ | ||
| + | |||
| + | 以下の検索を実行します: | ||
| + | |||
| + | <code sql> | ||
| + | SELECT * FROM diaries_mecab WHERE MATCH(content) AGAINST(' | ||
| + | </ | ||
| + | |||
| + | 結果は以下のように出力されます: | ||
| + | <code sql> | ||
| + | 明日の京都の天気は雨でしょう。 | ||
| + | </ | ||
| + | |||
| + | 検索チュートリアルの[[mroonga: | ||
| + | |||
| + | 「明日の東京都の天気は晴れでしょう。」がバイグラムとMecabとでどのようにトークン化をされるかを確認するには、以下のようにSELECT文からGroongaコマンドを使います。 | ||
| + | |||
| + | バイグラムの場合: | ||
| + | |||
| + | <code sql> | ||
| + | SELECT mroonga_command(' | ||
| + | </ | ||
| + | |||
| + | <code json> | ||
| + | [ | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | ] | ||
| + | </ | ||
| + | |||
| + | Mecabの場合: | ||
| + | |||
| + | <code sql> | ||
| + | SELECT mroonga_command(' | ||
| + | </ | ||
| + | |||
| + | <code json> | ||
| + | [ | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | ] | ||
| + | </ | ||
| + | |||
| + | \\ | ||
| + | |||
| + | |||
| + | ===== トークンフィルター ===== | ||
| + | |||
| + | Mroongaではトークン化の後に、トークンに所定の処理を行うトークンフィルターを指定することができます。トークンフィルターを CREATE TABLE 文の中で指定するには、'' | ||
| + | |||
| + | <code sql> | ||
| + | FULLTEXT [INDEX] [インデックス名] (カラム1, | ||
| + | </ | ||
| + | |||
| + | 以下の3つの組込みフィルターを使用できます。詳しくはGroongaの[[https:// | ||
| - | > TODO | + | * [[https:// |
| + | * [[https:// | ||
| + | * [[https:// | ||
| \\ | \\ | ||