最終更新:2011-04-01 (金) 21:17:31 (4766d)
Tritonn
Top / Tritonn
MySQL(MyISAM) + Senna = Tritonn
TritonnはMySQLから全文検索エンジンSennaを利用可能にするための改造を行うプロジェクトです。
後継
例
CREATE TABLE search ( id INTEGER AUTO_INCREMENT, PRIMARY KEY (id), text TEXT NOT NULL, FULLTEXT INDEX USING NGRAM (text) );
<?php $query = 'MATCH ( text ) AGAINST ("foo")' ; $query = 'MATCH ( text ) AGAINST ("+foo +bar" IN BLOOLEAN MODE)' ;//AND検索のときはBOOLEAN MODE $opt = array( 'conditions' => array( $query ), ); $search = $this->Search->find('all',$opt);
メモ
- MySQLのFULLTEXTインデックスはスペース区切りなので日本語が正しくインデックスされない
- LIKEキーワードだとフルスキャンが発生する
パッチ
- またSennaを管理するためのSQLコマンドや変数などを追加するために、MySQLの上位層のソースファイルに対しても改変を行っていますが、本質的な部分においては基本的にはMyISAMに対する改造という内容になっています。
- 従いまして、MySQLにこのパッチを適用した場合、変わるのは基本的にはMyISAMのFULLTEXTインデックスの振る舞いのみで、後はこれまでと同様となっています。またこの図をご覧頂くとお分かりになるかと思いますが、MySQLへアクセスするアプリケーションから見ると、MySQLの上位層がSennaを隠蔽しているため、アプリケーション側で特にSennaを意識する必要はありません。
完全転置インデックス
- インデックス内に各キーワードを含むレコードの識別子だけでなく、そのレコード内でのそのキーワードの出現位置についても記録する方式のインデックス
開発
- 住友情報システム?