このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
mroonga:10.7:config [2020/11/10 09:23] 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:// |
| \\ | \\ | ||
| 行 213: | 行 211: | ||
| |none|トークナイズしません。| | |none|トークナイズしません。| | ||
| |TokenDelimit|空白区切りでトークナイズします。| | |TokenDelimit|空白区切りでトークナイズします。| | ||
| + | |TokenRegexp|正規表現検索をサポートするトークナイザーです。| | ||
| |TokenUnigram|ユニグラム(1-Gram)でトークナイズします。| | |TokenUnigram|ユニグラム(1-Gram)でトークナイズします。| | ||
| |TokenBigram|バイグラム(2-Gram)でトークナイズします。| | |TokenBigram|バイグラム(2-Gram)でトークナイズします。| | ||
| 行 221: | 行 220: | ||
| <code sql> | <code sql> | ||
| - | SHOW VARIABLES LIKE 'mroonga_default_parser'; | + | SHOW VARIABLES LIKE 'mroonga_default_tokenizer'; |
| </ | </ | ||
| 行 233: | 行 232: | ||
| </ | </ | ||
| + | \\ | ||
| + | |||
| + | ==== 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> | ||
| + | [ | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | {" | ||
| + | ] | ||
| + | </ | ||
| \\ | \\ | ||
| - | ===== トークンフィルタ― ===== | ||
| - | > TODO | + | ===== トークンフィルター ===== |
| + | |||
| + | Mroongaではトークン化の後に、トークンに所定の処理を行うトークンフィルターを指定することができます。トークンフィルターを CREATE TABLE 文の中で指定するには、'' | ||
| + | |||
| + | <code sql> | ||
| + | FULLTEXT [INDEX] [インデックス名] (カラム1, | ||
| + | </ | ||
| + | |||
| + | 以下の3つの組込みフィルターを使用できます。詳しくはGroongaの[[https:// | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| \\ | \\ | ||