Swish 関数
導入
swish 拡張モジュールは、Swish-e API 用のバインディングを提供します。 Swish-e は "Simple Web Indexing System for Humans - Enhanced" を略したもので、オープンソースのインデックス作成/検索システムです。 Swish-e 自体のライセンスは GPL ですが、Swish-e ソースコードの URL にあるように、アプリケーションからそのライブラリにリンクすることができます。 » https://swish-e.org を参照ください。
この拡張モジュールは、 実験的 なものです。この拡張モジュールの動作・ 関数名・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 このモジュールは自己責任で使用してください。
要件
PECL/swish は、PHP 5.1.3 以降で動作します。
インストール手順
この PECL 拡張モジュールをインストールする方法は、 マニュアルの PECL 拡張モジュールのインストール という章にあります。 新規リリース・ダウンロード・ソースファイル・管理者情報・CHANGELOG といった関連する情報については、次の場所にあります。 » https://pecl.php.net/package/swish.
最新の PECL/swish Win32 DLL のダウンロード先はこちらです。 » php_swish.dll
実行時設定
設定ディレクティブは定義されていません。
例
Example#1 基本的な検索クエリ
<?php
try {
$swish = new Swish("index.swish-e");
$results = $swish->query("test OR text");
echo "Found ", $results->hits, " results\n";
while ($result = $results->nextResult()) {
var_dump($result);
break; //break after the first result
}
} catch (SwishException $e) {
echo "Error: ", $e->getMessage(), "\n";
}
?>
上の例の出力は、たとえば 以下のようになります。
Found 9 results object(SwishResult)#3 (8) { ["swishreccount"]=> int(1) ["swishrank"]=> int(1000) ["swishfilenum"]=> int(10) ["swishdbfile"]=> string(13) "index.swish-e" ["swishdocpath"]=> string(23) "README.SUBMITTING_PATCH" ["swishtitle"]=> NULL ["swishdocsize"]=> int(4557) ["swishlastmodified"]=> int(1072136752) }
定義済み定数
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
- Swish::META_TYPE_UNDEF (integer)
- Swish::META_TYPE_STRING (integer)
- Swish::META_TYPE_ULONG (integer)
- Swish::META_TYPE_DATE (integer)
- Swish::IN_FILE_BIT (integer)
- Swish::IN_TITLE_BIT (integer)
- Swish::IN_HEAD_BIT (integer)
- Swish::IN_BODY_BIT (integer)
- Swish::IN_COMMENTS_BIT (integer)
- Swish::IN_HEADER_BIT (integer)
- Swish::IN_EMPHASIZED_BIT (integer)
- Swish::IN_META_BIT (integer)
- Swish::IN_FILE (integer)
- Swish::IN_TITLE (integer)
- Swish::IN_HEAD (integer)
- Swish::IN_BODY (integer)
- Swish::IN_COMMENTS (integer)
- Swish::IN_HEADER (integer)
- Swish::IN_EMPHASIZED (integer)
- Swish::IN_META (integer)
- Swish::IN_ALL (integer)
定義済みクラス
定義済みクラス
Swish
プロパティ
-
indexes - 使用するインデックスおよびそのプロパティの配列。 プロパティの一覧は、Swish-e のバージョンに依存します。
メソッド
-
Swish::__construct - 新しい Swish オブジェクトを作成します。 エラー時に SwishException をスローします。
-
Swish->prepare - SwishSearch オブジェクトを準備して返します。 エラー時に SwishException をスローします。
-
Swish->query - クエリを実行し、SwishResults オブジェクトを返します。 エラー時に SwishException をスローします。
-
Swish->getMetaList - 指定したインデックスファイルのメタエントリの配列を返します。
-
Swish->getPropertyList - 指定したインデックスファイルのプロパティの配列を返します。
SwishSearch
メソッド
-
SwishSearch->setStructure - 検索オブジェクトの構造フラグを設定します。このフラグを使用して、 HTML ドキュメントの一部のみに検索制限をかけます。
-
SwishSearch->setPhraseDelimiter - フレーズの区切り文字を設定します。デフォルトはダブルクォートです。
-
SwishSearch->setSort - 結果の並び順を設定します。
-
SwishSearch->setLimit - 結果の限界を設定します。 エラー時に SwishException をスローします。
-
SwishSearch->resetLimit - 制限をリセットします。
-
SwishSearch->execute - クエリを実行し、SwishResults オブジェクトを返します。 エラー時に SwishException をスローします。
SwishResults
プロパティ
-
hits - この SwishResults オブジェクトの結果の数。
-
indexes - 検索で使用するインデックスの配列。
メソッド
-
SwishResults->nextResult - 次の SwishResult オブジェクト、 あるいはもう結果がない場合に FALSE を返します。
-
SwishResults->seekResult - SwishResults オブジェクト内の現在のシーク位置を設定します。 エラー時に SwishException をスローします。
-
SwishResults->getParsedWords - クエリ内の単語の配列を、ストップワードを削除して返します。
-
SwishResults->getRemovedStopwords - 削除したストップワードの配列を返します。
SwishResult
プロパティ
-
プロパティは Swish-e のバージョンに依存します。サンプルを参照ください。
メソッド
-
SwishResult->getMetaList - この結果で使用するインデックスのメタエントリの配列を返します。
-
SwishResult->stem - 単語の語幹を取得し、結果を文字列の配列で返します。 エラー時に SwishException をスローします。
SwishException
SwishException は、組み込みの Exception クラスを継承したもので、 このクラスと同じプロパティやメソッドを保持しています。詳細は 例外(exceptions) を参照ください。
目次
- Swish::__construct — Swish オブジェクトを作成する
- Swish->getMetaList — このインデックスのメタエントリ一覧を取得する
- Swish->getPropertyList — このインデックスのプロパティ一覧を取得する
- Swish->prepare — 検索クエリを準備する
- Swish->query — クエリを実行し、結果オブジェクトを返す
- SwishResult->getMetaList — メタエントリの一覧を取得する
- SwishResult->stem — 指定した単語の語幹を取得する
- SwishResults->getParsedWords — パースされた単語の配列を取得する
- SwishResults->getRemovedStopwords — クエリから削除したストップワードの配列を取得する
- SwishResults->nextResult — 次の検索結果を取得する
- SwishResults->seekResult — 現在のシークポインタを指定した位置に設定する
- SwishSearch->execute — 検索を実行し、結果を取得する
- SwishSearch->resetLimit — 検索の制限をリセットする
- SwishSearch->setLimit — 検索の限界を設定する
- SwishSearch->setPhraseDelimiter — フレーズの区切り文字を設定する
- SwishSearch->setSort — 並び順を設定する
- SwishSearch->setStructure — 検索オブジェクトの構造フラグを設定する