[groonga-dev,02731] Mroonga スコアリングについて

Back to archive index

Satoshi Mitani samit****@yahoo*****
2014年 9月 1日 (月) 13:22:10 JST


はじめまして。ヤフー(株) 三谷と申します。

Mronnga を検証しておりまして、ドキュメントに記載されている内容と異なる挙動がありました。

http://mroonga.org/ja/docs/reference/full_text_search/scoring.html
に記載されている、「4.重みが大きい上位N個のトークンを取り出す」のステップで、「明日」だけが残るという認識なのですが、
実際は、「天気」も対象になっているようです。

バグでしょうか?アドバイスいただけると助かります。

mysql> select * from groonga_test2;
+----+-----------------------------------+
| id | keywords                          |
+----+-----------------------------------+
|  1 | 明日は明日の風が吹く。            |
|  2 | また明日ね                        |
| 11 | ひどい天気.                       |
| 12 | 快晴の天気                        |
| 13 | のどかな天気                      |
| 14 | 蒸し暑い天気                      |
| 15 | 天気が穏かになる                  |
| 16 | 明日の天気が心配です。            |
+----+-----------------------------------+
8 rows in set (0.00 sec)

mysql> select keywords, match(keywords) against ('明日の天気') from groonga_test2 WHERE  match(keywords) against ('明日の天気') ;
+-----------------------------------+---------------------------------------------+
| keywords                          | match(keywords) against ('明日の天気')      |
+-----------------------------------+---------------------------------------------+
| ひどい天気.                       |                                      116509 |
| 快晴の天気                        |                                      116509 |
| のどかな天気                      |                                      116509 |
| 蒸し暑い天気                      |                                      116509 |
| 天気が穏かになる                  |                                      116509 |
| 明日の天気が心配です。            |                                      116509 |
+-----------------------------------+---------------------------------------------+
6 rows in set (0.00 sec)

mysql> SELECT COUNT(*) FROM groonga_test2 WHERE keywords like '%明日%';
+----------+
| COUNT(*) |
+----------+
|        3 |
+----------+
1 row in set (0.00 sec)

mysql> SELECT COUNT(*) FROM groonga_test2 WHERE keywords like '%天気%';
+----------+
| COUNT(*) |
+----------+
|        6 |
+----------+
1 row in set (0.00 sec)

mysql>  SELECT mroonga_command("select groonga_test2-keywords --query '_key:天気 OR _key:明日' --output_columns") AS groonga_response;
+----------------------------------------------------------------------------------------------------------+
| groonga_response                                                                                         |
+----------------------------------------------------------------------------------------------------------+
| [[[2],[["_id","UInt32"],["_key","ShortText"],["index","groonga_test2"]],[11,"天気",9],[1,"明日",5]]]     |
+----------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

mysql> show create table groonga_test2 \G
*************************** 1. row ***************************
       Table: groonga_test2
Create Table: CREATE TABLE `groonga_test2` (
  `id` int(11) NOT NULL DEFAULT '0',
  `keywords` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`id`),
  FULLTEXT KEY `keywords` (`keywords`)
) ENGINE=mroonga DEFAULT CHARSET=utf8 COMMENT='engine "innodb"'
1 row in set (0.00 sec)

mysql> show global variables like '%mroonga%';
+----------------------------------------+---------------+
| Variable_name                          | Value         |
+----------------------------------------+---------------+
| mroonga_action_on_fulltext_query_error | ERROR_AND_LOG |
| mroonga_database_path_prefix           |               |
| mroonga_default_parser                 | TokenMecab    |
| mroonga_default_wrapper_engine         |               |
| mroonga_dry_write                      | OFF           |
| mroonga_enable_optimization            | ON            |
| mroonga_libgroonga_version             | 4.0.2         |
| mroonga_lock_timeout                   | 10000000      |
| mroonga_log_file                       | groonga.log   |
| mroonga_log_level                      | NOTICE        |
| mroonga_match_escalation_threshold     | 0             |
| mroonga_version                        | 4.03          |
+----------------------------------------+---------------+
12 rows in set (0.00 sec)

よろしくお願いします。

-----
Satoshi MITANI
MAIL:samit****@yahoo*****
Y!ID:samitani1207
Yahoo! Japan technical team.




groonga-dev メーリングリストの案内
Back to archive index