[groonga-dev,02794] BigramとNatural Language Mode

アーカイブの一覧に戻る

Kazuhiko kazuh****@fdiar*****
2014年 9月 24日 (水) 18:02:02 JST


こんにちは、かずひこです。

TokenBigramSplitSymbolAlphaDigit を使うと、Natural Language Modeでの検索
結果が、英単語の場合はgramごとの隣接関係を無視しているようで、こんな結果
になります。

MariaDB [erp5_test]> SELECT *, MATCH (content) AGAINST ("bell") AS score
FROM diaries2;
+----+--------------------------------------------------+--------+
| id | content                                          | score  |
+----+--------------------------------------------------+--------+
|  1 | It'll be fine tomorrow as well.                  | 299594 |
|  2 | It'll rain tomorrow.                             | 149797 |
|  3 | It's fine today. It'll be fine tomorrow as well. | 299594 |
|  4 | It's fine today. But it'll rain tomorrow.        | 149797 |
|  5 | Ring the bell.                                   | 149797 |
|  6 | I love dumbbells.                                | 131073 |
+----+--------------------------------------------------+--------+

bellで検索すると、bellそのものが含まれるid=5よりも、llとかbeとかelとかの
含まれるid=1やid=3がスコアが高くなり、実用的でなさそうです。日本語での使
用だと、TokenBigramとnatural language modeの組み合わせでも、それほど不自
然な結果にはならないのでしょうか?

一方、boolean modeだと、

MariaDB [erp5_test]> SELECT *, MATCH (content) AGAINST ("bell" in
boolean mode) AS score FROM diaries2;
+----+--------------------------------------------------+-------+
| id | content                                          | score |
+----+--------------------------------------------------+-------+
|  1 | It'll be fine tomorrow as well.                  |     0 |
|  2 | It'll rain tomorrow.                             |     0 |
|  3 | It's fine today. It'll be fine tomorrow as well. |     0 |
|  4 | It's fine today. But it'll rain tomorrow.        |     0 |
|  5 | Ring the bell.                                   |     1 |
|  6 | I love dumbbells.                                |     1 |
+----+--------------------------------------------------+-------+

このように、'bell' と連続して出現するid=5とid=6のみにヒットします。

このあたりの挙動はドキュメントに無さそうですが、具体的にはどのようになっ
ていますか?

よろしくお願いします。

かずひこ




groonga-dev メーリングリストの案内
アーカイブの一覧に戻る