saryとは?
sary は Suffix Array のライブラリとツールです。Suffix Array と呼ばれるデータ構造を用いることにより、 10MB, 100MB といっ た巨大なテキストファイルに対する高速な全文検索を実現します。 特定の個所だけにインデックスポイントを割り当てることにより、 特定のフィールドのみを検索対象にすることもできます。
目次
新着情報
- 2005-03-30: sary 1.2.0 公開
- ABIが変更されました
- 細かなバグ修正がされました
- 2002-09-18: sary 1.0.4 公開
- 検索結果の表示を高速化しました
- ヘルプメッセージを修正しました
- 2001-04-20: ささやかなメーリングリストを作りました。
- 2000-12-26: Rubyバインディング 0.4 公開
高岡一馬 さん開発ありがとう。 - 2000-11-06: sary 0.1.0 公開
最初のバージョンです。
特徴
- 巨大なテキストファイルに対する高速な全文検索が可能
Suffix Arrayのおかげ。 mmap を利用している。 - Suffix Arrayを柔軟に構築できる
インデクサを簡単に拡張できます。 - 便利な付属ツール
- mksary: Suffix Arrayを構築する
- sary: Suffix Arrayを用いて全文検索する
- わかりやすいソースコード (だと願っている)
Cで実装されている。オブジェクト指向。単純でコンパクト。 - 最低限の機能しか実装されていない
必要とあれば後から追加するかもしれません。 - GLibが必要
リファレンスマニュアル
付属ツールの使い方
mksary
Suffix Arrayを構築します。メモリの少ない計算機で利用するとき は -b オプションを指定してください。その他のオプションは --help オプションを参照してください。実行例:
# HUGE-TEXT ファイルに対して Suffix Arrayを作る % mksary HUGE-TEXT % ls HUGE-TEXT* HUGE-TEXT HUGE-TEXT.ary # .ary ファイルが作られた
sary
mksary が構築した Suffix Arrayを利用 して HUGE-TEXT を PATTERN で検索検索します。GNU grep と同様に -i -A -B -C -c オプションが使えます。その他のオプションは --help オプション を参照してください。実行例:
# HUGE-TEXT ファイルに対してキーワード PATTERN で検索 % sary PATTERN HUGE-TEXT (検索結果が続く)
ダウンロード
GNU Lesser General Public License に従ったフリーソフトウェアとして公開します。
安定版
TODO
- 制限つきの曖昧検索を実装する
- 制限つきの正規表現検索を実装する
- 様々な言語のバインディングを用意する。
関連リンク集
- SUFARY
別の Suffix Arrayライブラリ。日本語の解説文書が充実しています。 - McIlroy's suffix sort
高度なアルゴリズム。sary はこのコードを利用していません。 - 横着プログラミング 第9回: sary: Suffix Array のライブラリとツール
Unix Magazine 2002年 10月号に ttyrec についての記事を書きました。
メーリングリスト
sary メーリングリスト案内ページ から参加できます。