sibuya toru
t_sibuy****@mards*****
2006年 9月 15日 (金) 17:21:53 JST
初投稿です。渋谷と申します。
Windows版での部分一致検索についてですが。
--------
select PART_ID from REP_PART
where PART_WORD like '%提携%';
--------
でヒットするレコードが、
--------
select PART_ID from REP_PART
where match(PART_WORD) against('*提携*' in boolean mode);
--------
ではヒットしないという状況で悩んでおります。
全てのレコードがヒットしない訳ではなく、
like 検索で140件のところ、
match against では134件しかヒットせず、
6件のモレが出ているという状況です。
モレのない検索を like より高速に実現できないかと
sennaの導入を検討しているのですが、
部分一致検索のしかたが間違っているのでしょうか。
indexは、
--------
create table REP_PART (
PART_ID varchar(6),
PART_WORD mediumtext,
primary key (PART_ID),
fulltext index (PART_WORD)
);
--------
のかたちで作ってあります。
文字コードは UTF8 で、いくつかのキーワードで試して
おりますが、他のキーワードでは問題なく、「提携」で
この状況が発生しました。
ちなみに、レコードを insert する前処理で、「提携」を
半角スペースで挟んだかたちで置換してから insert する
とOKでした。
宜しくお願いいたします。
---
Sibuya