PHP Manual
Prev |  | Next

# CLXIII. Swish Functions

# Introduction

The swish extension provides the bindings for Swish-e API. Swish-e stands for "Simple Web Indexing System for Humans - Enhanced" and is an open source system for indexing and search. Swish-e itself is licensed under GPL license, but uses a clause that allows applications to link against the library if every copy of the combined work is accompanied by the URL to Swish-e source code. Here it is: http://swish-e.org.

Warning
This extension is EXPERIMENTAL. The behaviour of this extension -- including the names of its functions and anything else documented about this extension -- may change without notice in a future release of PHP. Use this extension at your own risk.

# Requirements

PECL/swish requires PHP 5.1.3 or newer.

# Installation

Information for installing this PECL extension may be found in the manual chapter titled Installation of PECL extensions. Additional information such as new releases, downloads, source files, maintainer information, and a CHANGELOG, can be located here: http://pecl.php.net/package/swish.

The latest PECL/swish Win32 DLL can be downloaded here: php_swish.dll.

# Runtime Configuration

This extension has no configuration directives defined in `php.ini`.

# Examples

Example 1. Basic search query

`<?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"; } ?>`

The above example will output something similar to:

    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)
    }

# Predefined Constants

The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.

`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)

# Predefined Classes

### Swish

#### Properties

- indexes - the array of indexes used and their properties. Certain list of properties depends on Swish-e version.

#### Methods

- Swish::__construct - constructs new Swish object. Throws SwishException on error.

- Swish->prepare - prepares and returns SwishSearch object. Throws SwishException on error.

- Swish->query - executes the query and returns SwishResults object. Throws SwishException on error.

- Swish->getMetaList - returns an array of meta entries for the given index file.

- Swish->getPropertyList - returns an array of properties for the given index file.

### SwishSearch

#### Methods

- SwishSearch->setStructure - sets the structure flag in the search object. This flag is used to limit search to certain parts of HTML documents.

- SwishSearch->setPhraseDelimiter - sets the phrase delimiter character. The default delimiter is double-quotes.

- SwishSearch->setSort - sets the sort order of the results.

- SwishSearch->setLimit - sets the limits for the search. Throws SwishException on error.

- SwishSearch->resetLimit - resets the limits.

- SwishSearch->execute - executes the query and returns SwishResults object. Throws SwishException on error.

### SwishResults

#### Properties

- hits - the number of results in this SwishResults object.

- indexes - the array of indexes used in the search.

#### Methods

- SwishResults->nextResult - returns next SwishResult object or `FALSE` if no more results are available.

- SwishResults->seekResult - sets the current seek position in the SwishResults object. Throws SwishException on error.

- SwishResults->getParsedWords - returns an array of words in the query with stopwords removed.

- SwishResults->getRemovedStopwords - returns an array of removed stopwords.

### SwishResult

#### Properties

- Properties list depends on Swish-e version, see examples.

#### Methods

- SwishResult->getMetaList - returns an array of meta entries for the index used in this result.

- SwishResult->stem - stems the word and returns result as an array of strings. Throws SwishException on error.

### SwishException

SwishException extends the built in Exception class and possesses the same set of properties and methods. See the Section called Extending Exceptions in Chapter 20 for more details.

Prev | Home | Next
swf_viewport | Up | Swish::__construct