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_Index クラス
検索インデックス(索引)を表現するクラスです。インデックスの更新や検索を実行する場合は、このクラスを使用します。
APIの詳細や使い方の例はSenna_Indexをお読みください。
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