このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン 次のリビジョン 両方とも次のリビジョン | ||
mroonga:10.7:config [2020/11/09 18:04] 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) | ||
行 206: | 行 204: | ||
</ | </ | ||
- | トークナイザーは、MySQL(mariaDB) ではパーサと呼ばれています。MySQLでは、パーサの指定に別の構文('' | + | トークナイザーは、MySQL(mariaDB) ではパーサと呼ばれています。MySQLでは、パーサの指定に別の構文( '' |
トークナイザーに指定できる主なものを以下に示します。全てのリストは、Mroongaの[[https:// | トークナイザーに指定できる主なものを以下に示します。全てのリストは、Mroongaの[[https:// | ||
^トークナイザー^説明^ | ^トークナイザー^説明^ | ||
- | |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:// | ||
\\ | \\ |