このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 次のリビジョン 両方とも次のリビジョン | ||
mroonga:10.7:config [2020/11/10 09:25] y2sunlight [トークナイザー(パーサ)] |
mroonga:10.7:config [2020/11/10 14:45] y2sunlight [トークナイザー(パーサ)] |
||
---|---|---|---|
行 1: | 行 1: | ||
- | > 編集中 | ||
- | |||
====== Mroonga9.12 全文検索の構成 ====== | ====== Mroonga9.12 全文検索の構成 ====== | ||
Version 9.12 (MariaDB 10.4.12) | Version 9.12 (MariaDB 10.4.12) | ||
行 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'; |
</ | </ | ||
行 235: | 行 234: | ||
\\ | \\ | ||
- | ===== 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:// | ||
\\ | \\ |