西山 昇
nishi****@webre*****
2014年 11月 22日 (土) 22:51:05 JST
須藤様
いつも大変お世話になっております。
下記の件、mysql55-mroonga4.07が、centos5.8、,mysql55 5.5.40に
正しくインストールできました。
そこで全文検索のテストを行っていますが、
トークナイザーがTokenBigramで、
東京都の検索で京都も検出したいのですが、
それがうまくできないのですが、
下記で何か問題はあるでしょうか?
mroonga_default_parserは、
TokenBigramSplitSymbolAlphaDigit
と
TokenBigramで試してみましたが、
東京都のみの検出になります;
mysql> show variables like 'mroonga%';
+----------------------------------------+----------------------------------+
| Variable_name | Value |
+----------------------------------------+----------------------------------+
| mroonga_action_on_fulltext_query_error | ERROR_AND_LOG |
| mroonga_database_path_prefix | |
| mroonga_default_parser | TokenBigramSplitSymbolAlphaDigit |
| mroonga_default_wrapper_engine | |
| mroonga_dry_write | OFF |
| mroonga_enable_optimization | ON |
| mroonga_libgroonga_support_lz4 | OFF |
| mroonga_libgroonga_support_zlib | ON |
| mroonga_libgroonga_version | 4.0.7 |
| mroonga_lock_timeout | 10000000 |
| mroonga_log_file | groonga.log |
| mroonga_log_level | NOTICE |
| mroonga_match_escalation_threshold | 0 |
| mroonga_vector_column_delimiter | |
| mroonga_version | 4.07 |
+----------------------------------------+----------------------------------+
15 rows in set (0.00 sec)
mysql> show variables like 'mroonga%';
+----------------------------------------+---------------+
| Variable_name | Value |
+----------------------------------------+---------------+
| mroonga_action_on_fulltext_query_error | ERROR_AND_LOG |
| mroonga_database_path_prefix | |
| mroonga_default_parser | TokenBigram |
| mroonga_default_wrapper_engine | |
| mroonga_dry_write | OFF |
| mroonga_enable_optimization | ON |
| mroonga_libgroonga_support_lz4 | OFF |
| mroonga_libgroonga_support_zlib | ON |
| mroonga_libgroonga_version | 4.0.7 |
| mroonga_lock_timeout | 10000000 |
| mroonga_log_file | groonga.log |
| mroonga_log_level | NOTICE |
| mroonga_match_escalation_threshold | 0 |
| mroonga_vector_column_delimiter | |
| mroonga_version | 4.07 |
+----------------------------------------+---------------+
15 rows in set (0.00 sec)
mysql> CREATE TABLE diaries (
-> id int primary key auto_increment,
-> content varchar(255),
-> fulltext index(content)
-> ) engine = mroonga default charset = utf8;
mysql> INSERT INTO diaries (content) VALUES ("明日の東京都の天気は晴れでしょう");
Query OK, 1 row affected (0.02 sec)
mysql> INSERT INTO diaries (content) VALUES ("明日の京都の天気は雨でしょう");
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM diaries WHERE MATCH(content) AGAINST('東京都');
+----+--------------------------------------------------+
| id | content |
+----+--------------------------------------------------+
| 1 | 明日の東京都の天気は晴れでしょう |
+----+--------------------------------------------------+
mysql> select * from diaries;
+----+--------------------------------------------------+
| id | content |
+----+--------------------------------------------------+
| 1 | 明日の東京都の天気は晴れでしょう |
| 2 | 明日の京都の天気は雨でしょう |
+----+--------------------------------------------------+
2 rows in set (0.00 sec)
mysql> SELECT * FROM diaries WHERE MATCH(content) AGAINST('京都');
+----+--------------------------------------------------+
| id | content |
+----+--------------------------------------------------+
| 1 | 明日の東京都の天気は晴れでしょう |
| 2 | 明日の京都の天気は雨でしょう |
+----+--------------------------------------------------+
2 rows in set (0.00 sec)
→ 京都で検索すると、東京都も検出されますが、
東京都で検索すると、京都は検索されません、、
my.cnf内の
ft_min_word_len = 1
に設定しています、、
お手数ですが、アドバイス頂ければ
大変ありがたくぞんじます。
よろしくお願いします。