mysql:5383
From: <moeru@xxxxxxxxxx>
Date: Sun, 21 Apr 2002 11:13:39 +0900
Subject: [mysql 05383] Re: Full-text Search
2002/04/21 07:37:46 +0900に"KAWAI,Takanori" <GCD00051@xxxxxxxxxx>さんに頂いた 「[mysql 05381] Re: Full-text Search」への返事です。 モエルです。 みなさん、おはようございます。 >何を「単語」として見なすのか次第でしょうけれど、空白で >区切られた単位を「単語」として検索対象とするのであれば、 >その単位に分割して、インデックスになるテーブルを自作すれば >よいのでは?(元のレコードの識別子とその単語とか) >#というか単純に正規化しても、そうなるような...。 > >普通の日本語を検索対象とするとなると、KakasiやChaSenなどで >単語に分割する必要があるでしょうけども。 KakasiやChaSenは、聞いたことも無かったので(^^; 調べてみます。 ただ、分割することは考えていました。 Full-text Searchがどういう挙動をするのか興味ありますが >その単位に分割して、インデックスになるテーブルを自作する場合 どうしようかと思うのが ●データ入力してもらった際に全角スペースで入力された名前(商品名)と半角スペースのと2通りある。 ●全角か半角スペースなどで区切られた名前(商品名)もある。 これらをどう区別するかって事なんです。 例えば、音楽などの英語のアーティスト名や曲名、ジャンル名。。。 これがタイトルに入っていた場合 Steve Lukather & Larry Carlton - Don't Give Up id title ってテーブルを作ったとして この例だと、9個のデータが入ることになりますよね。 &や-などの記号は削ればいいのかな。。 で Steve Lukather & Larry Carltonで完全一致で検索させると WHERE title = 'Steve' and title = 'Lukather' and title = '&' and title = 'Larry語'... なんてゲリ長い句になりますよね。 今、titleの入ってるレコードは、1万程度なんですが 分解するとおそらくその20倍くらいになってしまいます。 やっぱ、全文一致だと WHERE title = 'Steve' and title = 'Lukather' and title = '&' and title = 'Larry語'... で20万レコードから検索するほうが WHERE like '%Steve Lukather & Larry Carlton%' を1万レコードから検索するよりかは、全然速かったりするんでしょうか? *これ、今後どっちにしても試そうと思っていたのですが もし、わかるようでしたら教えて下さいm(__)m >この ML の過去ログシステム(w3ml)は、まさにそれ(like '%単語%')をやって ます (^^; そうなんですか。。 KakasiやChaSenも使ってるんですか? ># 「漢字文字の連続」というようなのなら抜き出せるでしょうけど…。 うちの場合、漢字文字の連続+上記のような英語になってしまいます。。 ちなみに、現在 title like '%単語1%' OR title like '%単語2%' OR title like '%単語3%' なんて事をしていて 混雑時は、スロークエリのログに20秒以上のがざらになってます(^^; 混雑してないときは、速いです。 モエル
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]