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).
--------
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
Release history Release notifications | RSS feed
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 hashes)
Close
Hashes for xapian-haystack-1.1.2beta.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | e51a083458ad8fabdd7ce11502e9db11a2ac617b47cf13f662996c55f92fef5c |
|
MD5 | d186f21d327d944c6a01bcb09089bca1 |
|
BLAKE2b-256 | de6f591266e07ac8f3c0c318b77bc70dd629c6ae9372d11bc1c882b305fc5e87 |