MySQL全文検索ことはじめ

5,195 views

Published on

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,195
On SlideShare
0
From Embeds
0
Number of Embeds
1,369
Actions
Shares
0
Downloads
20
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

MySQL全文検索ことはじめ

  1. 1. MySQL 全文検索 ことはじめ 日本 MySQL ユーザ会 2009 冬 Tetsuro IKEDA @ Tritonn Project
  2. 2. セミナーの目的 <ul><li>多くの人に全文検索の便利さを知ってもらいたい </li></ul><ul><li>MySQL でも全文検索ができることの良さを知ってもらいたい </li></ul><ul><li>Tritonn プロジェクトを紹介したい </li></ul>
  3. 3. 全文検索って何ですか? <ul><li>インターネット検索( Google 、 Yahoo! とか ) </li></ul><ul><li>メール検索( Thunderbird 、 Becky! とか) </li></ul><ul><li>友人検索( mixi とか) </li></ul><ul><li>日記検索( SNS/BLOG 系全般) </li></ul><ul><li>キーワードを投げるとそれに関連したデータを返してくれるもの </li></ul><ul><li>検索対象のデータ構造とかはあまり意識しなくてよい </li></ul>
  4. 4. 普通の検索と全文検索の違い <ul><li>DBMS のよくある検索 </li></ul><ul><ul><li>データを分解して各カラムに格納しておく </li></ul></ul><ul><ul><li>カラムの値と一致しているかとか </li></ul></ul><ul><ul><li>数値が指定範囲に該当するかとか </li></ul></ul><ul><ul><li>“ hit する” or ”hit しない” </li></ul></ul><ul><li>全文検索 </li></ul><ul><ul><li>テキストをそのまま使う </li></ul></ul><ul><ul><li>検索キーワードを含むかどうか </li></ul></ul><ul><ul><li>キーワードとの関連度の高いものを優先 </li></ul></ul>
  5. 5. 全文検索の良さ – 簡単・高機能 <ul><li>利用者側 </li></ul><ul><ul><li>キーワードを与えるだけでOK </li></ul></ul><ul><ul><li>細かいことを指定しなくてOK </li></ul></ul><ul><ul><li>関連性の高いデータを返してもらえる </li></ul></ul><ul><li>開発側 </li></ul><ul><ul><li>対象データを構造化しておく必要がない </li></ul></ul><ul><ul><li>いろんなデータに対応できる </li></ul></ul><ul><ul><li>全文検索インデックスを使えば性能もGood! </li></ul></ul>
  6. 6. 全文検索のためのソフトウェア <ul><li>商用 </li></ul><ul><ul><li>FAST </li></ul></ul><ul><ul><li>Sedue </li></ul></ul><ul><li>OSS </li></ul><ul><ul><li>Namazu </li></ul></ul><ul><ul><li>Lucene </li></ul></ul><ul><ul><li>Hyper Estraier </li></ul></ul><ul><ul><li>Rast </li></ul></ul><ul><ul><li>MySQL </li></ul></ul><ul><ul><li>Senna </li></ul></ul><ul><ul><ul><li>Ludia (PostgreSQL+Senna) </li></ul></ul></ul><ul><ul><ul><li>Tritonn (MySQL+Senna) </li></ul></ul></ul>
  7. 7. MySQL で全文検索できることの意味 <ul><li>普通の全文検索エンジン </li></ul><ul><ul><li>独自の検索クエリ /API </li></ul></ul><ul><ul><li>独自のデータ管理方式 </li></ul></ul><ul><ul><li>要するに独自の世界 </li></ul></ul><ul><li>MySQL で全文検索 </li></ul><ul><ul><li>MySQL に SQL 文を投げる </li></ul></ul><ul><ul><li>テーブル、カラム、結合可能 </li></ul></ul><ul><ul><li>MySQL を通じたデータ管理 </li></ul></ul><ul><ul><li>MySQL 方式のバックアップ </li></ul></ul><ul><ul><li>レプリケーションできる </li></ul></ul><ul><ul><li>MySQL の世界 </li></ul></ul>
  8. 8. MySQL で全文検索するには… <ul><li>FULLTEXT インデックスというのがあります </li></ul><ul><ul><li>ただしこれは分かち書きされたデータだけ </li></ul></ul><ul><li>事前に分かち書きしたデータはそのまま OK </li></ul><ul><li>MySQL 5.1 の Fulltext parser plugin を利用 </li></ul><ul><ul><li>参照: MySQL full-text parser plugin collection </li></ul></ul><ul><li>転置インデックステーブルを作ってトリガーで N-gram にする </li></ul><ul><ul><li>参照:「 MySQL InnoDB だけで 全文検索 - SH2 の日記 」 </li></ul></ul><ul><li>Tritonn を利用 </li></ul><ul><ul><li>MySQL 内部で全文検索エンジン Senna を利用 </li></ul></ul>
  9. 9. Tritonn プロジェクト <ul><li>Senna の MySQL バインディングパッチを継承 </li></ul><ul><li>2007 年 4 月に初回リリース(最新は 1.0.12) </li></ul><ul><li>安心の QA (品質保証)体制 </li></ul><ul><ul><li>住商情報システムによる有償サポートあり </li></ul></ul><ul><ul><ul><li>Sun Microsystems によるバイナリ認定取得 </li></ul></ul></ul><ul><li>MySQL( 本家 ) のソースを改造 </li></ul><ul><li>Senna/MeCab を同梱 </li></ul><ul><li>国内大手 WEB サイト、企業での採用実績 </li></ul>
  10. 10. Tritonn プロジェクトが提供している物 <ul><li>MySQL 改造パッチ </li></ul><ul><li>MySQL( 改造版)ソース一式 </li></ul><ul><li>Linux x86/x86_64 向け tarball バイナリ </li></ul><ul><li>Linux x86/x86_64 向け RPM パッケージ </li></ul><ul><li>Windows 32/64 向け zip バイナリ </li></ul><ul><li>日本語ドキュメント </li></ul><ul><li>http://qwik.jp/tritonn/ </li></ul>
  11. 11. ありがとうございました <ul><li>Q & A </li></ul>

×