[Senna-dev 334] N-gramインデックス時の1byte文字の検索

Back to archive index

taku miyamoto taku_miyam****@dwang*****
2006年 9月 14日 (木) 17:59:35 JST


宮本です。
大変お世話になっております。


Senna の N-gram インデックスについて以下のような事例から、1byte のインデッ
クスについては、分かち書きになっている??との疑問を持ちましたのでメール
させていただきました。

疑問を持ったのは以下のような環境、データセットと、検索クエリによるもので
す。

-----------------------------------------------------------------------------------------
【環境】
mysql-4.0.27
senna-0.8.1
mecabは N-gram での操作のためインストールされておりません。


【入力データ】
create table articles(
   id int unsigned not null auto_increment primary key,
   body text,
   fulltext index using ngram (body)
);

insert into articles values
   (null,"郵貯民営化は重要な問題だと思う "),
   (null,"スローライフを志向するiPodの強み - CNET Japan"),
   (null,"HTML, CSS, Photoshopを同時に学べるサンプル付きデザイン記事:Goodpic"),
   (null,"jazzanovaの日記 - 現在顧問弁護士に相談中であり、対応についても検討中"),
   (null,"mixi非公式ニュースサイト - mixiの問題人物Kusakabe氏、強制退会に?"),
   (null,"むだづかいにっき♂:ネット上で議論を仕掛ける事について"),
   (null,"はてな perl ハッカーの方々にお聞きします。近頃ますます良い感じなperlですが、
どのような開発環境で開発していますでしょうか。"),
   (null,"シナトラ千代子 - 投げ銭が飛び交うなかでダイアリーに立てこもる、という意味。"),
   (null,"Going My Way: Skypeの会話をPodcast用に録音する場合の設定方法"),
   (null,"Kusakabeさんがmixiの一部?を賑わしている。彼にmixi強制退会が言い渡されたのだ。"),
   (null,"Ringo's Weblog: googleと競合しない方法2 "),
   (null,"Moleskin Diary - 投げ銭よりたれ銭"),
   (null,"第38回 海外メディアが伝えた小泉・郵政解散劇の評判 - nikkeibp.jp - 
立花隆の「メディア ソシオ-ポリティクス」"),
   (null,"ほその日記 - フォームが変更された事を知る"),
   (null,"総選挙はてなと公職選挙法:北海道に住む国家公務員日記 "),
   (null,"はてな、政党を株式に見立てて総選挙結果を予測 - CNET Japan");



【検索クエリとその結果】
mysql> select * from articles where match (body) against ('はてな');
+----+-----------------------------------------------------------------------------
| id | body                                                                        
+----+-----------------------------------------------------------------------------
|  7 | はてな perl ハッカーの方々にお聞きします。近頃ますます良い感じなperlですが‥
| 15 | 総選挙はてなと公職選挙法:北海道に住む国家公務員日記                         
| 16 | はてな、政党を株式に見立てて総選挙結果を予測 - CNET Japan                   
+----+-----------------------------------------------------------------------------
3 rows in set (0.00 sec)

mysql> select * from articles where match (body) against ('てな');
+----+-----------------------------------------------------------------------------
| id | body                                                                        
+----+-----------------------------------------------------------------------------
|  7 | はてな perl ハッカーの方々にお聞きします。近頃ますます良い感じなperlですが‥
| 15 | 総選挙はてなと公職選挙法:北海道に住む国家公務員日記                         
| 16 | はてな、政党を株式に見立てて総選挙結果を予測 - CNET Japan                   
+----+-----------------------------------------------------------------------------
3 rows in set (0.00 sec)

mysql> select * from articles where match (body) against ('perl');
+----+------------------------------------------------------------------------------
| id | body                                                                         
+----+------------------------------------------------------------------------------
|  7 | はてな perl ハッカーの方々にお聞きします。近頃ますます良い感じなperlですが‥
+----+------------------------------------------------------------------------------
1 row in set (0.00 sec)

mysql> select * from articles where match (body) against ('erl');
Empty set (0.00 sec)


※検索結果の右側は少し割愛しています。
-----------------------------------------------------------------------------------------


上記検索結果の検索語、「はてな」の検索結果は、「てな」の検索結果に含まれ
ているのですが、検索語「perl」の検索結果は、検索語「erl」の中に含まれて
おりません。

私の N-gram に対する認識が間違っていなければ、N-gram のインデックスの場
合、「perl」の検索結果は、検索語「erl」の中に含まれるものだと思ったので
すが。





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