このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 最新のリビジョン 両方とも次のリビジョン | ||
mroonga:10.7:config [2020/11/10 10:22] y2sunlight [TokenMecab] |
mroonga:10.7:config [2020/11/11 09:57] y2sunlight [ノーマライズ] |
||
---|---|---|---|
行 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'; |
</ | </ | ||
行 235: | 行 234: | ||
\\ | \\ | ||
- | ===== TokenMecab | + | ==== TokenMecab ==== |
- | 以下は「[[mroonga: | + | 本編で使用している 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> | <code sql> | ||
行 251: | 行 268: | ||
INSERT INTO diaries_mecab (content) VALUES (" | INSERT INTO diaries_mecab (content) VALUES (" | ||
</ | </ | ||
+ | |||
+ | 以下の検索を実行します: | ||
<code sql> | <code sql> | ||
- | SELECT | + | SELECT |
</ | </ | ||
+ | 結果は以下のように出力されます: | ||
<code sql> | <code sql> | ||
- | SELECT * FROM diaries_mecab WHERE MATCH(content) AGAINST(' | + | 明日の京都の天気は雨でしょう。 |
+ | </ | ||
+ | |||
+ | 検索チュートリアルの[[mroonga: | ||
+ | |||
+ | 「明日の東京都の天気は晴れでしょう。」がバイグラムとMecabとでどのようにトークン化をされるかを確認するには、以下のようにSELECT文からGroongaコマンドを使います。 | ||
+ | |||
+ | バイグラムの場合: | ||
+ | |||
+ | <code sql> | ||
+ | SELECT mroonga_command('tokenize TokenBigram "明日の東京都の天気は晴れでしょう。" | ||
</ | </ | ||
行 263: | 行 293: | ||
[ | [ | ||
{" | {" | ||
- | {" | + | |
- | {" | + | {" |
+ | {" | ||
+ | | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
] | ] | ||
</ | </ | ||
+ | Mecabの場合: | ||
+ | <code sql> | ||
+ | SELECT mroonga_command(' | ||
+ | </ | ||
+ | |||
+ | <code json> | ||
+ | [ | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | ] | ||
+ | </ | ||
\\ | \\ | ||
- | ===== トークンフィルタ― ===== | + | ===== トークンフィルター ===== |
+ | |||
+ | Mroongaではトークン化の後に、トークンに所定の処理を行うトークンフィルターを指定することができます。トークンフィルターを CREATE TABLE 文の中で指定するには、'' | ||
+ | |||
+ | <code sql> | ||
+ | FULLTEXT [INDEX] [インデックス名] (カラム1, | ||
+ | </ | ||
+ | |||
+ | 以下の3つの組込みフィルターを使用できます。詳しくはGroongaの[[https:// | ||
- | > TODO | + | * [[https:// |
+ | * [[https:// | ||
+ | * [[https:// | ||
\\ | \\ |