=begin
= Search::Namazu 0.1

[ ((<English|URL:search-namazu.en>)) | ((<Japanese|URL:search-namazu.ja>)) ]

== Search::Namazu とは

((<Namazu|URL:http://www.namazu.org/>)) の C 言語ライブラリである libnmz を Ruby から使用するための拡張ライブラリです。

Ruby 1.6/1.7, Namazu 2.0.x に対応しています。


== ダウンロード

* ((<URL:http://www.tietew.jp/ruby/search-namazu-0.1.tar.gz>))
* ((<URL:ftp://ftp.tietew.jp/ruby/search-namazu-0.1.tar.gz>))


== インストール

適当なディレクトリに展開し

    $ ruby extconf.rb
    $ make
    # make site-install

してください。

なお，Ruby / Namazu の開発環境一式が必要です。
Ruby / Namazu をソースからインストールした人は何もしなくて構いませんが，
パッケージからインストールした人は別途開発用パッケージが必要になる場合があります。


== バグ

インタフェイスは変更になるかもしれません。


== ライセンス

Search::Namazu はフリーソフトウェアです。Namazu 若しくは Ruby と同じ条件の下で使用できます。

バグを発見した場合は下のメイルアドレスまで知らせてください。

Tietew ((<URL:mailto:tietew@tietew.net>))


= リファレンス

== module Search::Namazu

    require 'search/namazu'
    result = Search::Namazu::search(
        "foo and bar or baz not hoge",
        ['/var/namazu/index/1', '/var/namazu/index/2'])
    p result

=== Module functions:

--- search(query, indices, options = {})
    Namazu で検索し，結果の Search::Namazu::Result を返します。
    ((|options|)) は各種オプションを格納した配列。
    
    * ((%"sort"%)) =>
      ソート方式（CGI パラメタと同じ）
    * ((%"lang"%)) =>
      言語
    * ((%"fields"%)) =>
      取り出すフィールド名の配列（((%uri%)) フィールドは必ず取り出されます）
    
    検索に失敗した場合，Search::Namazu::Error 例外が raise されます。

=== Module constants:

--- SUCCESS
--- ERR_*
    Namazu の検索ステータス。各値の意味は libnamazu.h を参照してください。


== class Search::Namazu::Result

=== Superclass:

Data

=== Methods:

--- hlist
--- results
    ヒットした文書の一覧を Search::Namazu::ResultData の配列で返します。

--- hitnumlist
    ヒット数のリストを Search::Namazu::HitnumData の配列で返します。
    配列の各要素は ((|search|)) メソッド呼び出し時の ((|indices|)) の各要素に対応します。


== class Search::Namazu::ResultData

=== Superclass:

Data

=== Methods:

--- score
    スコア
--- fields
    フィールドが格納された Hash
--- date
    ドキュメントの日付 (Time)
--- rank
    ランク
--- method_missing(key)
    ((%fields[key.to_s]%)) と同じ


== class Search::Namazu::HitnumData

=== Superclass:

Data

=== Methods:

--- word
    検索語
--- hitnum
    その検索語でヒットした文書の数
--- stat
    検索ステータス
--- phrase
    フレイズ検索の時，各単語の Search::Namazu::HitnumData の配列


== class Search::Namazu::Error

=== Superclass:

RuntimeError

=== Methods:

--- stat
    検索ステータス


=end
