mysql:5419
From: Tatsuhiko Miyagawa <Tatsuhiko Miyagawa <miyagawa@xxxxxxxxxx>>
Date: Sat, 27 Apr 2002 12:30:27 +0900
Subject: [mysql 05419] Re: Full-text Search
宮川です。 # dbi-japan もつけておきました。 At Fri, 26 Apr 2002 10:52:49 +0900, KAWAI,Takanori <GCD00051@xxxxxxxxxx> wrote: > 全文検索に萌えている(?)川合孝典です。 pack して mysql をだますというのはなかなか面白いアプローチですね! で、川合さんの Wiki にも一部記述がある DBIx::FullTextSearch[1] も chasen を使うことで日本語でもうまく動きましたので一応ご報告。 [1] http://search.cpan.org/search?dist=DBIx-FullTextSearch DBIx::FullTextSearch は MySQL Fulltext Search とはある意味反対のアプロー チで、 1: 任意のドキュメント(ファイル、URL、そしてもちろんMySQLテーブルのカ ラム etc)に対して 2: インデックスをMySQL のテーブルとして保存 ということをします。すごく説明しづらいのですが、要は MySQL の検索が爆 速であることを利用して、「どの単語がどのドキュメント (1: に相当) に存 在するか」を MySQL テーブルにデータとして持ち、検索はそのテーブルから SELECTすることでおこなうというわけです。 ちなみにテーブルの持ち方は、検索のやり方次第で数通りから選べます。詳し くはperldoc を参照してください。 利点としては * Perl で書かれているので (mysql 本体より) ハックが楽である ;) * 検索はたぶんかなり高速 欠点としては * インデックスとなるテーブルの更新はアプリケーション側が責任を持つ必要 がある (DBIx::FullTextSearch の APIを利用) という感じです。欠点とはいっても、ChaSen の処理が若干重いので、バッチ 化できるメリットもありますし、 http://search.cpan.org/search?dist=Class-DBI-mysql-FullTextSearch とかと組み合わせればトリガっぽく自動更新も可能だと思います。 Text::ChaSen を使ったテストコードはここにおいておきました。 http://bulknews.net/lib/tmp/ 即席でとっても汚いです。index_splitter のあたりはソースコード読まない と意味わかりません。 # サンプルデータは川合さんのページからいただきました ;) -- Tatsuhiko Miyagawa <miyagawa@xxxxxxxxxx>
5375 2002-04-20 22:23 [<moeru@xxxxxxxxxx> ] Full-text Search 5376 2002-04-20 23:19 ┗[とみたまさひろ <tomm] 5377 2002-04-20 23:35 ┗[<moeru@xxxxxxxxxx> ] 5378 2002-04-21 00:34 ┗[とみたまさひろ <tomm] 5379 2002-04-21 00:47 ┗[<moeru@xxxxxxxxxx> ] 5381 2002-04-21 07:37 ┣["KAWAI,Takanori" <GC] 5383 2002-04-21 11:13 ┃┗[<moeru@xxxxxxxxxx> ] 5386 2002-04-21 23:19 ┃ ┗["KAWAI,Takanori" <GC] 5387 2002-04-22 00:13 ┃ ┗[<moeru@xxxxxxxxxx> ] 5401 2002-04-25 11:06 ┃ ┗["KAWAI,Takanori" <GC] 5403 2002-04-25 12:14 ┃ ┗[<moeru@xxxxxxxxxx> ] 5404 2002-04-25 14:10 ┃ ┣["KAWAI,Takanori" <GC] 5407 2002-04-26 01:10 ┃ ┃┣[<moeru@xxxxxxxxxx> ] 5408 2002-04-26 07:44 ┃ ┃┃┗["KAWAI,Takanori" <GC] 5410 2002-04-26 09:47 ┃ ┃┃ ┗[<moeru@xxxxxxxxxx> ] 5411 2002-04-26 10:52 ┃ ┃┃ ┣["KAWAI,Takanori" <GC] 5417 2002-04-27 00:22 ┃ ┃┃ ┃┣[<moeru@xxxxxxxxxx> ] -> 5419 2002-04-27 12:30 ┃ ┃┃ ┃┗[Tatsuhiko Miyagawa <] 5421 2002-04-27 12:46 ┃ ┃┃ ┃ ┣["TOYOSHIMA, Masayuki] 5422 2002-04-27 13:06 ┃ ┃┃ ┃ ┃┣[Tatsuhiko Miyagawa <] 5423 2002-04-28 11:50 ┃ ┃┃ ┃ ┃┃┗["TOYOSHIMA, Masayuki] 5424 2002-04-28 18:36 ┃ ┃┃ ┃ ┃┗["KAWAI,Takanori" <GC] 5425 2002-04-28 18:50 ┃ ┃┃ ┃ ┗["KAWAI,Takanori" <GC] 5432 2002-05-05 14:58 ┃ ┃┃ ┃ ┗[<moeru@xxxxxxxxxx> ] 5416 2002-04-26 20:20 ┃ ┃┃ ┗[Hidetoshi OKAWA <hid] 5420 2002-04-27 12:46 ┃ ┃┗[Tatsuhiko Miyagawa <] 5405 2002-04-25 18:33 ┃ ┗[Hidetoshi OKAWA <hid] 5382 2002-04-21 08:04 ┗[とみたまさひろ <tomm]