Extension:Zend Search Lucene for MediaWiki

Description
Zend Search Lucene for MediaWiki adds better search capabilities to MediaWiki, includes a huge list of external file formats and aims to bring enhanced knowledge management features into your Wiki application. This engine is mainly designed for science and business collaborations. Unlike many other extended search solutions it depends on nothing else than PHP and an up-to-date configured web server. This means:


 * No Java, Python, C++ etc.
 * No additional compilations
 * No trouble with unending dependency issues
 * No daemons

The plugin is based on the native Lucene port of the Zend Framework. Therefore it provides the same enterprise level search features as the famous Java-based original Apache Lucene. Zend Search Lucene for MediaWiki can be tested and compared (thru utilizing a new special page for search results), before defining it as the complete replacement search engine on a wiki.

Notable Features
- word search - phrase search - wildcard search - fuzzy search - suggest with 4 modes - category filter - namespace filter - user preferences - handles an unlimited numbers of Wiki instances/indexes - runs on *nix and windows based systems - supports restricted wikis - includes a huge list of searchable file formats - enhanced knowledge management features - automatic skin switches - ready for customizing, extendable OOP - commercial premium support if needed

Requirements
- PHP >=5.2.3, mbstring enabled (default) - PHP Zend Framework 1.11 - Cron (recommended)

Compatibility
This extension has been successfully checked against the following MediaWiki versions. Others may work too.
 * 1.20 - works - (Jaideraf)
 * 1.17 - works - (Ucananduwill)
 * 1.16 - works - (steviex2)

The extension has been shown to work with the following languages and supports UTF-8.
 * English - works (help page currently german only) - all versions - (steviex2)
 * German - works - all versions - (steviex2)

Step 1 - Install / Download Zend Framework
Download Zend Framework. Unpack and copy the contents of the download file to a webserver folder (commonly not below web root). Zend Framework install is done!

Step 2 - Configure Zend Search Lucene for MediaWiki
Download and extract the extensions PslZslAdmin and PslZendSearchLucene to your Wiki(s) extension directory. Move the files PslZendSearchLuceneIndexer.php and PslZendSearchLuceneIndexerConfig.php to a server directory above web root. Edit the marked parts of the file PslZendSearchLuceneIndexerConfig.php as described in it.

Step 3 - Run PslZendSearchLuceneIndexer.php
Run the indexer to prepare for searching (you can do this with extension PslZslAdmin too): Unix-Example: Windows-Example: Make sure to replace the paths to match your installation! Note: You can automate the PslZendSearchLuceneIndexer.php script call with a cron job- scheduled task.

Step 4 - Extension Installation/Configuration - Local Settings.php
Add the following directives to your LocalSettings.php Note: this is only an example config. If you have any trouble visit the talk page Note: Make sure to replace the paths to match your installations and server configs!

Mode Of Operation
By default, this extension will not run as overwrite for the built-in search engine, but instead provide a new Special Page called Extended Search: ZSL for MediaWiki or Special:PslZendSearchLucene. This allows users to evaluate search results by comparing the built-in search vs. PslZendSearchLucene search.

If the performance is acceptable to replace the built-in search engine, Zend Search Lucene for MediaWiki can easily be configured to be the default search engine. To do so, modify LocalSettings.php and add this before the require_once line that includes the extension: Now, the standard search method will use PslZendSearchLucene by default. Note: when used in this way, the extension preserves the functionality of the Go and Search buttons.

Troubleshooting
If you get something like this: ... you may have to modify your PHP open_basedir-directive to point to your Zend Framework Library. A common example could be to edit an apache vhost.conf:

...and reload it on shell:

ToDo

 * Search within other exotic formats
 * Translations for Helppage
 * index->delete; while increment update

Revisions

 * v2.1 - 03.05.2011
 * hot fix "quote", hot fix "dead links"
 * v2.0 - 03.05.2011
 * multiple features, minor fixes, performance optimizations
 * v0.9.3 - 09.03.2011
 * implementing of stop words, help system (german)
 * v0.9.2 - 07.03.2011
 * ranking options, refactoring (performance), utf8-bug fix
 * v0.9.1 - 04.03.2011
 * redirect bug fix (default search engine)
 * v0.9.0 - 22.02.2011
 * some enhanced features, default search switch
 * v0.8 - 21.02.2011
 * some enhanced features, debug mode
 * v0.7 - 20.02.2011
 * some enhanced features, search field select
 * v0.6 - 18.02.2011
 * bug fix redirect
 * v0.5 - 14.01.2011
 * bug fix mismatch of uppercase strings
 * v0.4 - 19.01.2011
 * some enhanced features, phrase search
 * v0.3 - 23.01.2011
 * index engine for multiple wikis
 * v0.2 - 16.01.2011
 * some enhanced features, highligting etc.
 * v0.1 - 20.01.2011
 * initial release (RFC)

Announcements
08.02.2013 Zend cancled ZSL for the 2.0 branch of the Zend Framework I will maintain this project untill the seperate ZF 1.x branch disapears. 01.06.2011 Version 2.1 released

For further support see also

 * webserver-management.de