A Xapian backend for Haystack
Find a file
2009-12-09 11:29:34 -05:00
tests Moved schema generation out of database opening method and made it into a property that should be cached. 2009-12-08 13:18:17 -05:00
.gitignore Updated .gitignore to ignore MANIFEST 2009-12-07 11:14:17 -05:00
AUTHORS Merged branch next into master 2009-12-07 09:56:22 -05:00
LICENSE Updated to GPLv3 to maintain compatibility with Apache license 2009-12-01 15:55:22 -05:00
MANIFEST.in Added default files for a release on PyPI and updated README with some information regarding the installation. 2009-10-02 00:35:34 +08:00
README Updated notes section of README to discuss various index options 2009-12-07 20:14:45 -05:00
RELEASES Updated release notes 2009-12-09 11:26:09 -05:00
setup.py Updated with new version number 2009-12-09 11:29:34 -05:00
TODO Updated TODO with notes on upcoming refactor 2009-10-13 10:58:10 -04:00
xapian_backend.py Updated with new version number 2009-12-09 11:29:34 -05:00

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

More information on Haystack can be found here: http://haystacksearch.org/

xapian-haystack is licensed under the GPL, please see the included LICENSE
file for more information.

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

Source
------

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

Testing
-------

Provided that Django, Haystack, and xapian-haystack are all in your Python 
path, simply change to the xapian-haystack folder and execute:

    django-admin.py test tests --settings=tests.settings


Questions, Comments, Concerns:
------------------------------

Feel free to open an issue here: http://github.com/notanumber/xapian-haystack/issues