Kouhei Sutou
kou****@cozmi*****
2015年 4月 20日 (月) 23:20:18 JST
須藤です。 In <JR201****@rozet*****> "[groonga-dev,03178] FULLTEXT検索をするときに、関係ないデータを拾ってしまいます" on Mon, 20 Apr 2015 12:58:06 +0900, m-dob****@rozet***** wrote: > 下記の問題を解決する提案があれば、教えてください。 mroonga_match_escalation_thresholdという変数の値を-1に設定し てください。 http://mroonga.org/ja/docs/reference/server_variables.html#mroonga-match-escalation-threshold SQLで言うとこうです。 SET GLOBAL mroonga_match_escalation_threshold = -1; my.cnfに書いてもいいです。 > 古いmroongaバージョンですと、問題は再現しないので、その古いバージョン > の動作に合わせることができれば、そうしたいと思います。 どうして古いMroongaだと発生しないのかしら。。。 > <詳細> > > 「治療不奏効」を含むセンテンスをDBから取得したいです。 > 検索しているテーブル内で、分かち書きデータを登録しています。 > 検索するときに、「治療 不 奏効」をWHERE条件に入れます。 > 検索した結果を見ると、「治療不成功」を含むセンテンスを拾ってしまいます。 > > > 1. ↓の環境ですと、問題は再現します。 > > Windows Server 2012 > 10.0.14-MariaDB-log > mroonga 4.0.7 > > しかし、↓の環境ですと、再現しません。 > > Cent OS 6.4 > mysql 5.5.34-log > mroonga 3.0.8 > > 2. テーブルの定義 > > CREATE TABLE `WAKACHIGAKI_DATA` ( > `self_search_id` int(11) NOT NULL, > `task_id` varchar(40) DEFAULT NULL, > `std_english` mediumtext, > `wa_japanese` mediumtext, > PRIMARY KEY (`self_search_id`), > KEY `index_task_id` (`task_id`), > FULLTEXT KEY `index_so` (`std_english`) COMMENT 'parser "TokenDelimit" > ', > FULLTEXT KEY `index_wj` (`wa_japanese`) COMMENT 'parser\n" > TokenDelimit"' > ) ENGINE=mroonga DEFAULT CHARSET=utf8 COMMENT='engine "innodb"'; > > > 3. INSERT文 > > INSERT INTO WAKACHIGAKI_DATA > (`self_search_id`, > `task_id`, > `std_english`, > `wa_japanese`) > VALUES > ('213932', '056e4cb1-be11-4bba-b558-dda4bbb07981', 'in clinical trial of > combination there be no evidence to suggest that treatment failure be > consequence of metabolic status', '併用 臨床 試験 において 治療 不成功 > が 代謝 状態 の 結果 であることを示唆 する エビデンス は 認められ なかっ > た'), > ('214084', '056e4cb1-be11-4bba-b558-dda4bbb07981', 'however these > treatment failure achieve higher concentration than many adult and > pediatric patient in other study who be cure of malaria', 'しかし これら > の 治療 不成功 例 は 他 の 試験 において マラリア が 治癒し た 多く の > 成人 および 小児 患者 と比較し て 高い 濃度 を達成 した'), > ('214085', '056e4cb1-be11-4bba-b558-dda4bbb07981', 'as patient be allow > to leave hospital after day it be more likely that most treatment > failure in this study be due to re infection rather than insufficient > exposure to study drug', '患者 は 日 後 に退院 すること が 許可され たこ > とから 本 試験 の 治療 不成功 例 の 大半 は 治験 薬 への 曝露 が不十分 > であったことよりも むしろ 再感染 に起因 した 可能性 が 高い'), > ('214097', '056e4cb1-be11-4bba-b558-dda4bbb07981', 'however most study > incorporate limit blood sample and some study include more complete > sample in order to relate any adverse event or treatment failure with > drug concentration', 'しかし 大半 の 試験 では 血液 検体採取 が 十分 に > 実施され て いない が 有害 事象 または 治療 不成功 を 薬物 濃度 と関連付 > け るため より 完全 な 検体採取 を実施 した 試験 もあった') > > > 4. SELECT文 > > SELECT * FROM WAKACHIGAKI_DATA where task_id in ('056e4cb1-be11-4bba- > b558-dda4bbb07981') AND Match(wa_japanese) against('\"治療 不 奏効\"' in > boolean mode); > > > すると、関係ないセンテンスをヒットしてしまいます。。。 > 何かアドバイスがありますか? > > > よろしくお願いします。 > ドブリン マイケル > > _______________________________________________ > groonga-dev mailing list > groon****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/groonga-dev