Skip to main content.
home | support | download

The Swish-e README File

Swish-e version 2.4.7

Table of Contents


If you are upgrading Swish-e, please review the CHANGES file before installation. The index format may change and existing indexes may need to be re-created before use.


Swish-e is Simple Web Indexing System for Humans - Enhanced. Swish-e can quickly and easily index directories of files or remote web sites and search the generated indexes.

Swish-e is extremely fast in both indexing and searching, highly configurable, and can be seamlessly integrated with existing web sites to maintain a consistent design. Swish-e can index web pages, but can just as easily index text files, mailing list archives, or data stored in a relational database.

Swish is designed to index small- to medium-sized collection of documents, Although a few users are indexing over a million documents, typical usage is more often in the tens of thousands. Currently, Swish-e only indexes eight bit character encodings.

Swish-e version 2.2 was a major rewrite of the code and the addition of many new features. Memory requirements for indexing have been reduced and indexing speed is significantly improved from previous versions. New features allow more control over indexing, better document parsing, improved indexing and searching logic, better filter code, and the ability to index from any data source.

Swish-e version 2.4 includes a major rewrite of the C API and a new Perl module for accessing the Swish-e C library. In addition, Swish-e 2.4 uses the GNU Auto Tools. The significant changes are where files are installed, and the use of Libtool to create the Swish-e library as a shared library on many platforms. Basically, installation is easier than previous versions, and more files are installed in "standard" locations (e.g. documentation is installed in $prefix/share/doc/swish-e).

Note: Due to the new build and installation system in Swish-e 2.4, some documentation may incorrectly list the location of files. Please report any documentation errors to the Swish-e Discussion list.

Swish-e is not a "turn-key" indexing and searching solution. The Swish-e distribution contains most of the parts to create such a system, but you need to put the parts together as best meets your needs. This gives you the power to index and search your documents the way you wish and to seamlessly integrate a search engine into your web site or application.

To use Swish-e, you will need to configure Swish-e to index your documents, create an index by running Swish-e, and setup an interface such as a CGI script (a script is included) to search the index and display results. Swish uses helper programs to index documents of types that Swish-e cannot natively index. These programs may need to be installed separately from Swish-e.

Swish-e is an Open Source (see: ) program supported by developers and a large group of users. Please take time to join the Swish-e discussion list at .

Key features

  • Quickly index a large number of documents in different formats including text, HTML, and XML.

  • Use "filters" to index other types of files such as PDF, gzip, or PostScript.

  • Includes a web spider for indexing remote documents over HTTP. Follows Robots Exclusion Rules (including META tags).

  • Can use an external program to supply documents to Swish-e, such as an advanced spider for your web server or a program to read and format records from a relational database.

  • Document "properties" (some subset of the source document, usually defined as a META or XML elements) may be stored in the index and returned with search results.

  • Document summaries can be returned with each search.

  • Word stemming, soundex, metaphone, and double-metaphone indexing for "fuzzy" searching

  • Phrase searching and wildcard searching

  • Limit searches to HTML links.

  • Use powerful Regular Expressions to select documents for indexing or exclusion.

  • Easily limit searches to parts or all of your web site.

  • Results can be sorted by relevance or by any number of properties in ascending or descending order.

  • Limit searches to parts of documents such as certain HTML tags (META, TITLE, comments, etc.) or to XML elements.

  • Can report structural errors in your XML and HTML documents.

  • Index file is portable between platforms.

  • A Swish-e library is provided to allow embedding Swish-e into your applications for very fast searching. A Perl module is available that provides a standard API for accessing Swish-e.

  • Includes example search script with context summaries and search term and phrase highlighting. Can be used with popular Perl templating systems.

  • Swish-e is fast.

  • It's Open Source and FREE! You can customize Swish-e and you can contribute your fancy new features to the project.

  • Supported by on-line user and developer groups.

Where do I get Swish-e?

The current version of Swish-e can be found at:

Please make sure you use a current version of Swish-e.

Information about Windows binary distributions can also be found at this site.

How Do I Install Swish-e?

Read the INSTALL page.

Building from source is recommended. On most platforms, Swish-e should build without problems. A list of platforms where Swish-e has been built can be found in the INSTALL page. Information on building for VMS and Win32 can be found in sub-directories of the src directory. Check the Swish-e site for information about binary distributions (such as for Windows).

In addition to the INSTALL page, make sure you read the SWISH-FAQ page if you have any questions, or to get an idea of questions that you might someday ask.

Problems or questions about installing Swish-e should be directed to the Swish-e discussion list (see the Swish-e web site at

Please read Where do I get help with Swish-e? below before posting any questions to the Swish-e list.

The Swish-e Documentation

Documentation is provided as HTML pages installed in $prefix/share/doc/swish-e where $prefix is /usr/local if building from source, or /usr if installed as part of a package from your OS vendor. Under Windows $prefix is selected at installation time.

A subset of the documentation is installed as system man pages as well.

Documentation is also available on-line at

Patches or updates to the documentation should be done against the POD files, located in the pod directory of the distribution, or (preferably) against the CVS repository.

Where do I get help with Swish-e?

If you need help with installing or using Swish-e, please subscribe to the Swish-e mailing list. Visit the Swish-e web site (listed above) for information on subscribing to the mailing list.

Before posting any questions, please read QUESTIONS AND TROUBLESHOOTING.

Speling mistakes

Please contact the Swish-e list with corrections to this documentation. Any help in cleaning up the docs will be appreciated!

Any patches should be made against the .pod files, not the .html files.

Swish-e Development

Swish-e is currently being developed as an Open-Source project on SourceForge

Contact the Swish-e list for questions about Swish-e development.

Swish-e's History

SWISH was created by Kevin Hughes, circa 1994, to fill the need of the growing number of Web administrators on the Internet - many of the indexing systems were not well documented, were hard to use and install, and were too complex for their own good. The system was widely used for several years, long enough to collect some bug fixes and requests for enhancements.

In Fall 1996, The Library of UC Berkeley received permission from Kevin Hughes to implement bug fixes and enhancements to the original binary. The result is Swish-enhanced or Swish-e, brought to you by the Swish-e Development Team.

Document Info

Each document in the Swish-e distribution contains this section. It refers only to the specific page it's located in, and not to the Swish-e program or the documentation as a whole.

$Id: README.pod 1663 2005-02-11 17:00:13Z whmoseley $