API解説 - 各クラスの役割

php_sennaはSennaAPIを以下のクラスでカプセル化しています。

各クラスのメソッドは失敗した場合に例外を投げます。PHP 5.1以上かつSPLが有効な状態でコンパイルされていれば、以下の例外を投げます。

  • LogicException
    • InvalidArgumentException - 引数の型が違う場合
    • BadMethodCallException - 呼んではいけないコンテキストでメソッドを呼んだ場合
    • ※これらが発生した場合はコードの修正が必要です。
  • RuntimeException
    • OutOfBoundsException - 値の範囲に問題がある場合
    • UnexpectedValueException - 値に問題がある場合
    • SennaException - SennaAPIの呼び出しに失敗した場合
    • ※事前に値の確認をするか、必要であればtry-catchで捕捉してください。

SPLが無効な状態ならば、SennaException以外の例外は全てExceptionクラスになります。

※PHP 5では明示的に無効にしない限りSPLはデフォルトで有効です。

Senna クラス

各クラス共通の定数を定義しているクラスです。(現在のところ)メソッドは何も定義していません。

このクラスが定義している定数の一覧はSennaをお読みください。

Senna_Index クラス

検索インデックス(索引)を表現するクラスです。インデックスの更新や検索を実行する場合は、このクラスを使用します。

APIの詳細や使い方の例はSenna_Indexをお読みください。

Senna_Records クラス

検索結果を表現するクラスです。検索結果の情報は、このクラスを通して取得します。

APIの詳細や使い方の例はSenna_Recordsをお読みください。

Senna_Records_Row クラス

検索結果の1つのレコードを表現するクラスです。文書IDやスコア等の情報は、このクラスを通して取得します。Senna_RecordsおよびSenna_Records_SubRecordsは、Senna_Records_Rowの集合です。

APIの詳細や使い方の例はSenna_Records_Rowをお読みください。

Senna_Records_SubRecords クラス

検索結果の各レコードが保持する「サブレコード」情報の集合を表現するクラスです。

サブレコードとは、検索結果の各レコードに格納する追加情報です。例えば、どこの段落でマッチしたか等の情報を有限個で格納できます。

APIの詳細や使い方の例はSenna_Records_SubRecordsをお読みください。

Senna_Snippet クラス

Snippet(KWIC)を作成するクラスです。

Snippetとは、検索エンジン等の検索結果でページタイトルの下に数行表示されるアレのことです。

APIの詳細や使い方の例はSenna_Snippetをお読みください。

SennaException クラス

SennaAPIの呼び出しが失敗した場合、上記クラスはこの例外を投げます。

なるべくこの例外が発生しないようにエクステンション側で事前に値の確認をしています。ただし、Sennaライブラリのバージョンによっては回避できないことがありますので、安定性を求めるアプリケーションでは必要に応じてtry-catchをしてください。

SennaAPIが返したエラーコード(sen_rc)値は、SennaExceptionクラスのgetCode()メソッドで確認できます。

最終更新:2008/03/31 09:02