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

Back to archive index

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




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