サーチギア

サーチギアという汎用性を持たせた全文検索モジュールの検索デモを置いてみます。
http://demo.t29.xia.jp/demo/normal.php?category_id=wiki_100M&q=%E6%A4%9C%E7%B4%A2

※変更などで見えなくなってしまう可能性がありますがご了承ください


上記デモは、wikiからテキスト100MBを抽出して、
検索をかけられるようにしてみたものです。
検索時間が0.004秒とでていますが、検索語句をキャッシュしているわけではなく、ちゃんと毎回検索の計算をしています。Celeron2.4G,メモリ1Gの普通のものを使用してますので、マシンスペック次第ではもっと高速になります。

サーチギアの特徴

・高速検索(100Mの文字列を0.004〜0.1秒程度で検索)
・高精度検索
 通常の検索エンジンは高速性のために精度を犠牲にしていますが、
 高精度を目的にロジックを組むことで検索漏れ、ノイズをなくしています。
・システムからの呼び出し+連携が可能
 HTTPのAPI呼出または外部プログラム実行により
 検索結果をXMLで取得できるようにしています。
・表記揺れを補完
 大文字/小文字/全角/半角などの表記ゆれを補完して検索。
・データベース連携
 DBの指定データを自動的に検索対象にできるようにしています。
・既存サーバ依存なし
 APIで検索専用サーバとして通信できますので、
 アドオン的に追加することができます。

高速化の仕組み

仕組みとしては、基盤となるデータベース部分をCで実装し、
高速性に関わりが薄い部分はスクリプトで実装しています。
C実装部分をスクリプトの関数化することでスクリプト記述が入っても無駄な処理を最低限に抑えるようにしています。
コアのデータベース部分は、現行データベースで一番高速といわれているMySQLMyISAMと比較しても10倍ほど高速になっています。
それ以外に、検索対象のデータをコンパイルするのですが、高精度かつ高速検索できるように徹底的に最適化しています。

ターゲットとしているニーズ

・サイトが大規模化したため、サイト内検索を導入したい
SNSなど大量のテキストデータを扱うサイトで、
 DBのLIKE検索では耐えられなくなった問題の解決策として。
 SQLクエリを少し変更するだけでDBの変更なく解決できます。
・数千〜数万ページ以上のテキストデータを全文検索したい
・大規模サイトのサイト内検索として使いたい


上場企業が運営するポータルサイト内検索として、
モバイル検索エンジンとしてなど導入実績があります。
ヒアリング→提案/見積→要件詰め→実装→問題解決まで迅速に行っています。