Skip to main content

A Xapian backend for Haystack

Project description

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

* More information on Haystack can be found here: <http://haystacksearch.org/>
* More information on Xapian can be found here: <http://xapian.org>

Requirements
------------

- Python 2.4 (May work with 2.3, but untested)
- Django 1.0.x
- Django-Haystack 1.0BETA
- 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 (<http://trac.xapian.org/ticket/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: <http://github.com/notanumber/xapian-haystack/>

Credits
-------

xapian-haystack is maintained by [David Sauve](mailto:dsauve@trapeze.com), and is funded by [Trapeze](http://www.trapeze.com).

License
-------

xapian-haystack is Copyright © 2009 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: <http://github.com/notanumber/xapian-haystack/issues>
Alternatively, ask questions on the django-haystack [mailing list](http://groups.google.com/group/django-haystack/) or [irc channel](irc://irc.freenode.net/haystack).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xapian-haystack-1.1.2beta.tar.gz (23.7 kB view details)

Uploaded Source

File details

Details for the file xapian-haystack-1.1.2beta.tar.gz.

File metadata

File hashes

Hashes for xapian-haystack-1.1.2beta.tar.gz
Algorithm Hash digest
SHA256 e51a083458ad8fabdd7ce11502e9db11a2ac617b47cf13f662996c55f92fef5c
MD5 d186f21d327d944c6a01bcb09089bca1
BLAKE2b-256 de6f591266e07ac8f3c0c318b77bc70dd629c6ae9372d11bc1c882b305fc5e87

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page