Doumae Kiyotaka
kiyot****@douma*****
2012年 6月 28日 (木) 14:51:42 JST
堂前と申します mroonga+groongaで利用した場合の、検索スコアの数値の持つ意味について 悩んでいます。 http://mroonga.github.com/ja/docs/userguide/storage.html#how-to-get-search-score で示されている方法で検索スコアを取得してみました。 手元の環境で実行すると、スコアの数値は得られるのですが、ドキュメント で提示されているような1桁の数値ではなく、6桁の数値が帰ってきます。 そもそもスコアの数値は特定のクエリに対する結果間で相対的に評価できれば 良いので、絶対的な数値が大きかろうが小さかろうが気にすることは無い、と 理解しています。 ただ、ドキュメントとあまりに桁数の外れた数値が返ってくるため、困惑して います。 実行環境によってスコアの桁数がここまで異なる事はあり得るのでしょうか? もしくは、groonga/mroongaのバージョンの途中でスコアに関する挙動が変更 されてドキュメントだけが取り残されているということなのでしょうか? 気になったもので、事情を教えて頂けると嬉しいです。 ■環境 MySQL5.5.25 groonga-2.0.3 mroonga-2.03 上で、以下のようなテーブルを作成しています。 mysql> CREATE TABLE diaries (id INT PRIMARY KEY AUTO_INCREMENT,content VARCHAR(255),FULLTEXT INDEX (content)COMMENT 'parser "TokenMecab"') ENGINE = mroonga DEFAULT CHARSET utf8; 上記ドキュメントを参考にクエリを投げます。 mysql> SELECT *, MATCH (content) AGAINST ("晴れ") FROM diaries WHERE MATCH (content) AGAINST ("晴れ") ORDER BY MATCH (content) AGAINST ("晴れ") DESC; +----+--------------------------------------------------------------------------------------------------+------------------------------------+ | id | content | MATCH (content) AGAINST ("晴れ") | +----+--------------------------------------------------------------------------------------------------+------------------------------------+ | 3 | 今日は晴れましたが、明日は雨か晴れでしょう。晴れるといいですね。 | 299594 | | 1 | 今日は晴れました。明日も晴れるでしょう。 | 149797 | | 2 | 今日は晴れましたが、明日は雨でしょう。 | 149797 | +----+--------------------------------------------------------------------------------------------------+------------------------------------+ 3 rows in set (0.00 sec) スコアに相当するカラムは6桁の数値が返ってきています。 -- Kiyotaka Doumae