[groonga-dev,03178] FULLTEXT検索をするときに、関係ないデータを拾ってしまいます

Back to archive index

m-dob****@rozet***** m-dob****@rozet*****
2015年 4月 20日 (月) 12:58:06 JST


ドブリンです。

下記の問題を解決する提案があれば、教えてください。
古い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 メーリングリストの案内
Back to archive index