CLXIII. Swish 関数

導入

swish 拡張モジュールは、Swish-e API 用のバインディングを提供します。 Swish-e は "Simple Web Indexing System for Humans - Enhanced" を略したもので、オープンソースのインデックス作成/検索システムです。 Swish-e 自体のライセンスは GPL ですが、Swish-e ソースコードの URL にあるように、アプリケーションからそのライブラリにリンクすることができます。 http://swish-e.org を参照ください。

警告

この拡張モジュールは、 実験的 なものです。この拡張モジュールの動作・ 関数名・その他ドキュメントに書かれている事項は、予告なく、将来的な PHP のリリースにおいて変更される可能性があります。 このモジュールは自己責任で使用してください。

要件

PECL/swish は、PHP 5.1.3 以降で動作します。

インストール手順

この PECL 拡張モジュールをインストールする方法は、 マニュアルの PECL 拡張モジュールのインストール という章にあります。 新規リリース・ダウンロード・ソースファイル・管理者情報・CHANGELOG といった関連する情報については、次の場所にあります。 http://pecl.php.net/package/swish.

最新の PECL/swish Win32 DLL のダウンロード先はこちらです。 php_swish.dll

実行時設定

設定ディレクティブは定義されていません。

例 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 - 検索で使用するインデックスの配列。

メソッド

SwishResult

プロパティ

  • プロパティは Swish-e のバージョンに依存します。サンプルを参照ください。

メソッド

  • SwishResult->getMetaList - この結果で使用するインデックスのメタエントリの配列を返します。

  • SwishResult->stem - 単語の語幹を取得し、結果を文字列の配列で返します。 エラー時に SwishException をスローします。

SwishException

SwishException は、組み込みの Exception クラスを継承したもので、 このクラスと同じプロパティやメソッドを保持しています。詳細は 例外を拡張する項第20章 を参照ください。

目次
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 -- 検索オブジェクトの構造フラグを設定する