A fork of Xapian-haystack (https://github.com/notanumber/xapian-haystack) that applies the Inkscape patch for dealing with long terms. (https://github.com/inkscape/xapian-haystack/commit/d1346dc53f35b0960badf6435cff468c648de694)
Go to file
2010-02-13 15:09:04 -05:00
tests Removed leftover pdb.set_trace() 2010-02-13 15:09:04 -05:00
.gitignore Updated .gitignore to ignore MANIFEST 2009-12-07 11:14:17 -05:00
AUTHORS Corrected an issue with stemming that caused it to be skipped when searching without limiting to a field 2010-02-12 14:40:14 -05:00
LICENSE Updated to GPLv3 to maintain compatibility with Apache license 2009-12-01 15:55:22 -05:00
MANIFEST.in Updated MANIFEST.in to include README.rst 2010-01-29 10:58:48 -05:00
README.rst Updated Haystack requirement to reflect that is no longer BETA 2010-01-16 18:48:23 -05:00
RELEASES Updated RELEASES with changes in last merge 2010-01-27 19:43:21 -05:00
setup.py Fixed incorrect name of README in setup.py 2010-02-12 10:51:59 -05:00
TODO Updated TODO. Was really outdated... 2010-01-27 19:44:49 -05:00
xapian_backend.py Corrected an issue with stemming that caused it to be skipped when searching without limiting to a field 2010-02-12 14:40:14 -05:00

Xapian-Haystack -- A backend for Django-Haystack

Overview

xapian-haystack is a backend for use with the Django Haystack search API and the Xapian search engine.

Requirements

  • Python 2.4 (May work with 2.3, but untested)
  • Django 1.0.x
  • Django-Haystack 1.0
  • Xapian 1.0.13+ (May work with earlier versions, but untested)
  • mod_wsgi 1.3.X

Notes

  • Due to an issue with mod_python possibly causing deadlocks with Xapian (issue #364), when Python is not invoked through the "main interpreter", mod_python is not supported with xapian-haystack. It may work, with some tweaking, but your mileage will vary.
  • Because Xapian does not support simultaneous WritableDatabase connections, it is strongly recommended that users take care when using RealTimeSearchIndex to either set WSGIDaemonProcess processes=1 or use some other way of ensuring that there are not multiple attempts to write to the indexes. Alternatively, use SearchIndex and a cronjob to reindex content at set time intervals (sample cronjob can be found here <http://gist.github.com/216247>_) or derive your own SearchIndex to implement some other form of keeping your indexes up to date.

Installation

  1. Copy or symlink xapian_backend.py into haystack/backends/ or install it by running one of the following commands:

    python setup.py install

    or

    pip install xapian-haystack

    or

    easy_install xapian-haystack

  2. Add HAYSTACK_XAPIAN_PATH to settings.py

  3. Set HAYSTACK_SEARCH_ENGINE to xapian

Testing

The easiest way to test xapian-haystack is to symlink or copy the xapian_haystack/tests folder into the haystack/tests folder so that your source tree resembles this layout:

django-haystack
    +---haystack
    |       |
    |       +---backends
    |              |
    |              +---solr_backend.py
    |              +---whoosh_backend.py
    |              +---xapian_backend.py
    +---tests
            |
            +---core
            +---solr_tests
            +---whoosh_tests
            +---xapian_tests

Once this is done, the tests can be executed in a similar fashion as the rest of the Haystack test-suite:

django-admin.py test xapian_tests --settings=xapian_settings

Source

The latest source code can always be found here: github.com/notanumber/xapian-haystack

Credits

xapian-haystack is maintained by David Sauve, and is funded by Trapeze.

License

xapian-haystack is Copyright (c) 2009-2010 David Sauve, Trapeze. It is free software, and may be redistributed under the terms specified in the LICENSE file.

Questions, Comments, Concerns:

Feel free to open an issue here: github.com/notanumber/xapian-haystack/issues Alternatively, ask questions on the django-haystack mailing list or irc channel.