5.3. サーバ変数の一覧#
独自に追加されたサーバ変数を説明します。
5.3.1. mroonga_action_on_fulltext_query_error
#
全文検索クエリエラーの振舞いです。
mroonga_action_on_fulltext_query_error
のデフォルト値は ERROR_AND_LOG
です。これは従来のmroongaと同等に振舞います。
使用可能な mroonga_action_on_fulltext_query_error
のリストです。
値 |
説明 |
---|---|
ERROR |
エラーを報告する。ログは無効です。 |
ERROR_AND_LOG |
エラーを報告する。ログは有効です。(これがデフォルトです) |
IGNORE |
エラーを無視する。ログは無効です。 |
IGNORE_AND_LOG |
エラーを無視するが、ログは有効です。 (InnoDBと似た振舞です) |
mroonga_action_on_fulltext_query_error
を確認するためのSQL例です:
mysql> SHOW VARIABLES LIKE 'mroonga_action_on_fulltext_query_error';
+----------------------------------------+---------------+
| Variable_name | Value |
+----------------------------------------+---------------+
| mroonga_action_on_fulltext_query_error | ERROR_AND_LOG |
+----------------------------------------+---------------+
1 row in set (0.00 sec)
5.3.2. mroonga_boolean_mode_syntax_flags
#
MATCH () AGAINST ('...' IN BOOLEAN MODE)
の構文をカスタマイズするフラグです。
この変数はシステム変数でもセッション変数でもあります。
以下は利用可能なフラグの一覧です。
フラグ |
説明 |
---|---|
|
|
|
Groongaのクエリー構文. Groongaのクエリー構文はMySQLのBOOLEAN MODEの構文と互換性があります。
|
|
Groongaのスクリプト構文 を使います。 これはJavaScriptのような構文です。この構文を使うとGroongaの全ての機能を使うことができます。
|
|
クエリー構文で この構文を使うと1つの この構文を使うと全文検索だけでなく、等価比較や前方一致検索など他の演算も使うことができます。 詳細は Groongaのクエリー構文 を参照してください。 |
|
クエリー構文の中で、値の更新をする |
|
クエリー構文で |
デフォルトのフラグは DEFAULT
です。これはMySQLのBOOLEAN MODEと互換性のある構文です。
SYNTAX_QUERY,ALLOW_LEADING_NOT
というようにカンマで区切って複数のフラグを指定できます。
Groongaのスクリプト構文を使うようにするSQLの例です:
mysql> SET mroonga_boolean_mode_syntax_flags = "SYNTAX_SCRIPT";
5.3.3. mroonga_database_path_prefix
#
TODO:
5.3.4. mroonga_default_parser
#
バージョン 5.04 で非推奨: Use mroonga_default_tokenizer instead.
デフォルトの全文検索用パーサ。デフォルト値はconfigureの with-default-parser
オプションで指定できます(無指定時は TokenBigram
)。
全文検索パーサーとして TokenBigramSplitSymbolAlphaDigit
を使う例です。この例では body_index
全文検索インデックスは TokenBigramSplitSymbolAlphaDigit
を使います。
1SET GLOBAL mroonga_default_parser=TokenBigramSplitSymbolAlphaDigit;
2CREATE TABLE diaries (
3 id INT PRIMARY KEY AUTO_INCREMENT,
4 body TEXT,
5 FULLTEXT INDEX body_index (body)
6) DEFAULT CHARSET UTF8;
5.3.5. mroonga_default_tokenizer
#
Added in version 5.04.
全文検索用のデフォルトのトークナイザー。デフォルト値はconfigureの --with-default-tokenizer=TOKENIZER
オプションで指定できます。このオプションを指定しないときは TokenBigram
になります。
全文検索用インデックスのトークナイザーとして TokenBigramSplitSymbolAlphaDigit
を使う例です。この例では body_index
全文検索インデックスは TokenBigramSplitSymbolAlphaDigit
を使います。
1SET GLOBAL mroonga_default_tokenizer=TokenBigramSplitSymbolAlphaDigit;
2CREATE TABLE diaries (
3 id INT PRIMARY KEY AUTO_INCREMENT,
4 body TEXT,
5 FULLTEXT INDEX body_index (body)
6) DEFAULT CHARSET UTF8;
5.3.6. mroonga_default_wrapper_engine
#
TODO:
5.3.7. mroonga_dry_write
#
Groongaデータベースに実際にデータを書き込むかどうかを指定します。デフォルト値は OFF
で、実際にGroongaデータベースにデータを書き込みます。通常はこの値を変更する必要はありません。この変数はベンチマーク時に便利です。この値を ON
にすることでMySQLとMroongaだけの処理時間を計測することができます。この時間にGroongaの処理時間は含まれません。
Groongaデータベースに値を書き込まないようにするSQLの例です:
mysql> SHOW VARIABLES LIKE 'mroonga_dry_write';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| mroonga_dry_write | OFF |
+-------------------+-------+
1 row in set (0.00 sec)
mysql> SET mroonga_dry_write = true;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'mroonga_dry_write';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| mroonga_dry_write | ON |
+-------------------+-------+
1 row in set (0.00 sec)
5.3.8. mroonga_enable_optimization
#
最適化を有効にするかどうかを指定します。デフォルト値は ON
で最適化は有効になっています。通常はこの値を変更する必要はありません。この変数はベンチマーク時に便利です。
最適化を無効にするSQLの例です:
mysql> SHOW VARIABLES LIKE 'mroonga_enable_optimization';
+-----------------------------+-------+
| Variable_name | Value |
+-----------------------------+-------+
| mroonga_enable_optimization | ON |
+-----------------------------+-------+
1 row in set (0.00 sec)
mysql> SET mroonga_enable_optimization = false;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'mroonga_enable_optimization';
+-----------------------------+-------+
| Variable_name | Value |
+-----------------------------+-------+
| mroonga_enable_optimization | OFF |
+-----------------------------+-------+
1 row in set (0.00 sec)
5.3.9. mroonga_libgroonga_support_lz4
#
GroongaライブラリーのLZ4サポート状況
GroongaライブラリーがLZ4をサポートしているかを確認するためのSQL例です:
mysql> SHOW GLOBAL VARIABLES LIKE 'mroonga_libgroonga_support_lz4';
+--------------------------------+-------+
| Variable_name | Value |
+--------------------------------+-------+
| mroonga_libgroonga_support_lz4 | ON |
+--------------------------------+-------+
5.3.10. mroonga_libgroonga_support_zlib
#
Groongaライブラリーのzlibサポート状況
Groongaライブラリーがzlibをサポートしているかを確認するためのSQL例です:
mysql> SHOW GLOBAL VARIABLES LIKE 'mroonga_libgroonga_support_zlib';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| mroonga_libgroonga_support_zlib | ON |
+---------------------------------+-------+
5.3.11. mroonga_libgroonga_support_zstd
#
GroongaライブラリーのZstandardサポート状況
GroongaライブラリーがZstandardをサポートしているかを確認するためのSQL例です:
mysql> SHOW GLOBAL VARIABLES LIKE 'mroonga_libgroonga_support_zstd';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| mroonga_libgroonga_support_zstd | ON |
+---------------------------------+-------+
5.3.12. mroonga_libgroonga_support_mecab
#
GroongaライブラリーのMeCabサポート状況
GroongaライブラリーがMeCabをサポートしているかを確認するためのSQL例です。
mysql> SHOW GLOBAL VARIABLES LIKE 'mroonga_libgroonga_support_mecab';
+----------------------------------+-------+
| Variable_name | Value |
+----------------------------------+-------+
| mroonga_libgroonga_support_mecab | ON |
+----------------------------------+-------+
5.3.13. mroonga_libgroonga_version
#
groongaライブラリのバージョン
groongaライブラリのバージョンを確認するためのSQL例です:
mysql> SHOW VARIABLES LIKE 'mroonga_libgroonga_version';
+----------------------------+------------------+
| Variable_name | Value |
+----------------------------+------------------+
| mroonga_libgroonga_version | 1.2.8-9-gbf05b82 |
+----------------------------+------------------+
1 row in set (0.00 sec)
5.3.14. mroonga_lock_timeout
#
TODO:
5.3.15. mroonga_log_file
#
Mroongaのログファイル名。デフォルト値は groonga.log
。
ログファイルを /tmp/mroonga.log
に変更する例です:
mysql> SHOW VARIABLES LIKE 'mroonga_log_file';
+------------------+-------------+
| Variable_name | Value |
+------------------+-------------+
| mroonga_log_file | groonga.log |
+------------------+-------------+
1 row in set (0.00 sec)
mysql> SET GLOBAL mroonga_log_file = "/tmp/mroonga.log";
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'mroonga_log_file';
+------------------+------------------+
| Variable_name | Value |
+------------------+------------------+
| mroonga_log_file | /tmp/mroonga.log |
+------------------+------------------+
1 row in set (0.00 sec)
5.3.16. mroonga_log_level
#
Mroongaのログの出力レベル。デフォルト値は NOTICE
。
使用可能な mroonga_log_level
のリストです。
ログレベル |
説明 |
---|---|
|
ログ出力なし。 |
|
データベースの破損などの緊急に対処が必要なログメッセージを出力する。 |
|
内部的なエラーを示すログを出力する。 |
|
デッドロックの発生など致命的なログメッセージを出力する。 |
|
Mroongaが使用しているAPIのエラーログメッセージを出力する。 |
|
引数の誤りなどの警告ログメッセージを出力する。 |
|
設定や状態の変化を示すログメッセージを出力する。 |
|
ファイル操作などの情報をログメッセージとして出力する。 |
|
デバッグメッセージを出力する。 Mroonga開発者やバグレポートの際にお勧めします。 |
|
テストツール向けのダンプログメッセージを出力します。 |
ログレベルを DEBUG
に変更する例です。 DEBUG
レベルにするとデバッグ用のたくさんのメッセージがログに出力されます:
mysql> SHOW VARIABLES LIKE 'mroonga_log_level';
+-------------------+--------+
| Variable_name | Value |
+-------------------+--------+
| mroonga_log_level | NOTICE |
+-------------------+--------+
1 row in set (0.00 sec)
mysql> SET GLOBAL mroonga_log_level = "debug";
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'mroonga_log_level';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| mroonga_log_level | DEBUG |
+-------------------+-------+
1 row in set (0.00 sec)
5.3.17. mroonga_query_log_file
#
Mroongaのクエリーログファイル名。デフォルト値は空です。
この値が空の場合、クエリーログはファイルに保存されません。この値が空ではない場合は、クエリーログは指定されたファイルに保存されます。
クエリーログファイルを /tmp/mroonga_query.log
に変更する例です:
mysql> SHOW VARIABLES LIKE 'mroonga_query_log_file';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| mroonga_query_log_file | |
+------------------------+-------+
1 row in set (0.00 sec)
mysql> SET GLOBAL mroonga_query_log_file = "/tmp/mroonga.log";
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'mroonga_query_log_file';
+------------------------+------------------+
| Variable_name | Value |
+------------------------+------------------+
| mroonga_query_log_file | /tmp/mroonga.log |
+------------------------+------------------+
1 row in set (0.00 sec)
5.3.18. mroonga_match_escalation_threshold
#
マッチ方法をエスカレーションするかどうかを決定する閾値です。マッチ方法については Groongaの検索の仕様 を確認してください。
デフォルト値はGroongaのデフォルト値と同じです。デフォルトの設定でインストールした場合は0になります。この変数のスコープは「グローバル」と「セッション」の両方なので、my.cnfまたは SET GLOBAL mroonga_match_escalation_threshold = THRESHOLD;
でデフォルト値を設定できます。
マッチ方法がエスカレーションするかどうかを決定する閾値として-1を使った例です。-1は絶対エスカレーションしないという意味です。
1SET GLOBAL mroonga_match_escalation_threshold = -1;
この変数の値による挙動の変化を示す別の例です。
1CREATE TABLE diaries (
2 id INT PRIMARY KEY AUTO_INCREMENT,
3 title TEXT,
4 tags TEXT,
5 FULLTEXT INDEX tags_index (tags) COMMENT 'tokenizer "TokenDelimit"'
6) ENGINE=mroonga DEFAULT CHARSET=UTF8;
7
8-- Test data
9INSERT INTO diaries (title, tags) VALUES ("Hello groonga!", "groonga install");
10INSERT INTO diaries (title, tags) VALUES ("Hello mroonga!", "mroonga install");
11
12-- Matches all records that have "install" tag.
13SELECT * FROM diaries WHERE MATCH (tags) AGAINST ("install" IN BOOLEAN MODE);
14-- id title tags
15-- 1 Hello groonga! groonga install
16-- 2 Hello mroonga! mroonga install
17
18-- Matches no records by "gr" tag search because no "gr" tag is used.
19-- But matches a record that has "groonga" tag because search
20-- method is escalated and prefix search with "gr" is used.
21-- The default threshold is 0. It means that no records are matched then
22-- search method is escalated.
23SELECT * FROM diaries WHERE MATCH (tags) AGAINST ("gr" IN BOOLEAN MODE);
24-- id title tags
25-- 1 Hello groonga! groonga install
26
27-- Disables escalation.
28SET mroonga_match_escalation_threshold = -1;
29-- No records are matched.
30SELECT * FROM diaries WHERE MATCH (tags) AGAINST ("gr" IN BOOLEAN MODE);
31-- id title tags
32
33-- Enables escalation again.
34SET mroonga_match_escalation_threshold = 0;
35-- Matches a record by prefix search with "gr".
36SELECT * FROM diaries WHERE MATCH (tags) AGAINST ("gr" IN BOOLEAN MODE);
37-- id title tags
38-- 1 Hello groonga! groonga install
5.3.19. mroonga_max_n_records_for_estimate
#
Added in version 5.02.
TODO:
5.3.20. mroonga_enable_operations_recording
#
復旧のために操作を記録するかどうかを指定します。デフォルトは OFF
です。これはGroongaデータベースに操作を記録しないというおkとです。この変数の変更を反映するには FLUSH TABLES
でデータベースを開き直す必要があります。
操作記録を無効にするSQLの例です:
mysql> SET GLOBAL mroonga_enable_operations_recording = false;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH TABLES;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW GLOBAL VARIABLES LIKE 'mroonga_enable_operations_recording';
+-------------------------------------+-------+
| Variable_name | Value |
+-------------------------------------+-------+
| mroonga_enable_operations_recording | OFF |
+-------------------------------------+-------+
5.3.21. mroonga_vector_column_delimiter
#
ベクターカラムを出力する際の区切り文字。デフォルト値は空白です。
区切り文字を空白からセミコロンに変更するSQL例です:
mysql> SHOW VARIABLES LIKE 'mroonga_vector_column_delimiter';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| mroonga_vector_column_delimiter | |
+---------------------------------+-------+
1 row in set (0.00 sec)
mysql> SET GLOBAL mroonga_vector_column_delimiter = ';';
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW GLOBAL VARIABLES LIKE 'mroonga_vector_column_delimiter';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| mroonga_vector_column_delimiter | ; |
+---------------------------------+-------+
5.3.22. mroonga_version
#
Mroongaのバージョン
実行中のmroongaのバージョンを確認するためのSQL例です:
mysql> SHOW VARIABLES LIKE 'mroonga_version';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| mroonga_version | 1.10 |
+-----------------+-------+
1 row in set (0.00 sec)
5.3.23. mroonga_condition_push_down_type
#
Added in version 7.10.
コンデイションプッシュダウンサポートをどのように有効にするかを制御します。
デフォルト値は ONE_FULL_TEXT_SEARCH
です。このときは WHERE
句に MATCH AGAINST
が1つしかない場合だけコンデイションプッシュダウンを有効にします。
以下は有効な値の一覧です。
値 |
説明 |
---|---|
NONE |
コンディションプッシュダウンを使いません。 |
ALL |
常にコンディションプッシュダウンを使います。今のところ実験的な機能です。 |
ONE_FULL_TEXT_SEARCH |
これがデフォルトです。 |
現在の値を確認するためのSQL例です:
mysql> SHOW VARIABLES LIKE 'mroonga_condition_push_down_type';
+----------------------------------+----------------------+
| Variable_name | Value |
+----------------------------------+----------------------+
| mroonga_condition_push_down_type | ONE_FULL_TEXT_SEARCH |
+----------------------------------+----------------------+
1 row in set (0.00 sec)