Merged branch 'master'.

This commit is contained in:
Jorge C. Leitão 2014-05-21 07:07:50 +02:00
commit ba0b0c8a69

View file

@ -1,42 +1,17 @@
Xapian backend for Django-Haystack
==================================
.. _Travis: https://travis-ci.org/notanumber/xapian-haystack
.. image:: https://travis-ci.org/notanumber/xapian-haystack.svg?branch=master
:target: https://travis-ci.org/notanumber/xapian-haystack
.. _Django-Haystack: http://haystacksearch.org/
.. _Xapian: http://xapian.org
Xapian-haystack is a backend of Django-Haystack_ for the Xapian_ search engine.
Xapian-haystack is a backend of `Django-Haystack <http://haystacksearch.org/>`_
for the `Xapian <http://xapian.org>`_ search engine.
Thanks for checking it out.
.. _here: http://getting-started-with-xapian.readthedocs.org/en/latest/index.html
You can find more information about Xapian `here <http://getting-started-with-xapian.readthedocs.org>`_.
Haystack is an API for searching in Django websites. xapian-haystack is
a bridge from Haystack, the API, to Xapian, a search engine.
Xapian is a powerful search engine written in C++ that uses probabilistic measures
to efficient search on text. More useful information can be found here_ (read the docs).
Requirements
------------
.. _yet: http://trac.xapian.org/ticket/346
- Python 2.4+ (Python 3.3 not support yet_).
- Django 1.5+
- Django-Haystack 2.0.X
- Xapian 1.0.13+
.. _Travis:
In particular, the backend is built on Travis_ using:
- Python 2.7.6
- Django 1.6.4
- Django-Haystack (latest)
- Xapian 1.2.8 (libxapian22)
Features
--------
@ -48,33 +23,46 @@ Xapian-Haystack provides all the standard features of Haystack:
- Sorting
- Spelling suggestions
.. _stemmer: https://en.wikipedia.org/wiki/Stemming
Additionally, Xapian also uses a stemmer_ to create its index,
with support to different languages.
Requirements
------------
- Python 2.4+ (Python 3.3 not support `yet <http://trac.xapian.org/ticket/346>`_).
- Django 1.5+
- Django-Haystack 2.0.X
- Xapian 1.0.13+
In particular, we build this backend on `Travis`_ using:
- Python 2.7.6
- Django 1.6.4
- Django-Haystack (latest)
- Xapian 1.2.8 (libxapian22)
Installation
------------
.. _`this gist`: https://gist.github.com/jleclanche/ea0bc333b20ef6aa749c
First you need to install Xapian in your machine.
We recommend installing it on the virtual environment using
`this gist <https://gist.github.com/jleclanche/ea0bc333b20ef6aa749c>`_:
activate the virtual environment and run the script.
First, you need to install Xapian in your machine.
We recommend installing it on the virtual environment using `this gist`_.
First you activate the virtual environment, and them run the script.
You can test the installation was successful by running::
You can test if the installation was successful by running::
python -c "import xapian"
Finally, install Xapian-haystack by running::
Finally, install Xapian-Haystack by running::
pip install git+https://github.com/notanumber/xapian-haystack.git
Configuration
-------------
Xapian is configured as other backends of Haystack.
You have to define the connection to the database, which is done to a path to a directory, e.g::
You have to define the connection to the database,
which is done to a path to a directory, e.g::
HAYSTACK_CONNECTIONS = {
'default': {
@ -83,53 +71,62 @@ You have to define the connection to the database, which is done to a path to a
},
}
.. _languages: http://xapian.org/docs/apidoc/html/classXapian_1_1Stem.html
The backend has the following optional settings:
The backend includes the following settings:
- ``HAYSTACK_XAPIAN_LANGUAGE``: the stemming language; the default is `english` and the list of available languages
can be found `here <http://xapian.org/docs/apidoc/html/classXapian_1_1Stem.html>`_.
- `HAYSTACK_XAPIAN_LANGUAGE`: the stemming language. By default is english, the list of available languages
can be found `here <languages>`_.
- ``HAYSTACK_XAPIAN_WEIGHTING_SCHEME``: a tuple with parameters to be passed to the weighting scheme
`BM25 <https://en.wikipedia.org/wiki/Okapi_BM25>`_.
By default, it uses the same parameters as Xapian recommends; this setting allows you to change them.
- `HAYSTACK_XAPIAN_WEIGHTING_SCHEME` - sets the weighting scheme used during search.
See the default scheme in the source code or see `Xapian::BM25Weight::BM25Weight in the Xapian documentation <http://xapian.org/docs/apidoc/html/classXapian_1_1BM25Weight.html>`_
for further information.
- ``HAYSTACK_XAPIAN_FLAGS``: the options used to parse `AutoQueries`;
the default is ``FLAG_PHRASE | FLAG_BOOLEAN | FLAG_LOVEHATE | FLAG_WILDCARD | FLAG_PURE_NOT``
See `here <http://xapian.org/docs/apidoc/html/classXapian_1_1QueryParser.html>`_ for more information
on what they mean.
- `HAYSTACK_XAPIAN_FLAGS`: used to further configure how indexes are stored and manipulated.
By default, this value is set to `FLAG_PHRASE | FLAG_BOOLEAN | FLAG_LOVEHATE | FLAG_WILDCARD | FLAG_PURE_NOT`.
See the `Xapian::QueryParser::feature_flag in the Xapian documentation <http://xapian.org/docs/apidoc/html/classXapian_1_1QueryParser.html>`_
for further explanation of the available Xapian.QueryParser flags.
Testing
-------
Xapian-Haystack has a test suite in continuous deployment in Travis_. The script `.travis.yml` contains
all the steps to run the test suite on your machine.
Xapian-Haystack has a test suite in continuous deployment in `Travis`_. The script ``.travis.yml`` contains
all the steps required to run the test suite.
Other way is to clone `Django-Haystack <https://github.com/toastdriven/django-haystack>`_,
copy the content of the ``tests/`` folder of Xapian-Haystack to the ``tests/`` folder of Haystack,
and copy ``xapian_backend.py`` to ``haystack/backends/`` folder.
The tests can then be run from the folder ``tests/`` using::
django-admin.py test --settings=xapian_settings xapian_tests
Source
------
.. _github: http://github.com/notanumber/xapian-haystack/
The source code can be found in `github <http://github.com/notanumber/xapian-haystack/>`_.
The source code can be found in github_.
Credits
-------
This fork of xapian-haystack is maintained by Jorge C. Leitão but
`David Sauve <mailto:david.sauve@bag-of-holding.com>`_ was the main contributor of Xapian-Haystack;
Xapian-haystack was originally funded by `Trapeze <http://www.trapeze.com>`_.
Xapian-Haystack is maintained by Jorge C. Leitão;
`David Sauve <mailto:david.sauve@bag-of-holding.com>`_ was the main contributor of Xapian-Haystack and
Xapian-Haystack was originally funded by `Trapeze <http://www.trapeze.com>`_.
License
-------
Xapian-haystack is Copyright (c) 2009, 2010, 2011, 2012 David Sauve, 2009, 2010 Trapeze and 2014 by Jorge C. Leitão.
It is free software, and may be redistributed under the terms specified in the LICENSE file.
Xapian-haystack is free software licenced under GNU General Public Licence v2 and
Copyright (c) 2009, 2010, 2011, 2012 David Sauve, 2009, 2010 Trapeze, 2014 Jorge C. Leitão.
It 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 <http://github.com/notanumber/xapian-haystack/issues>`_
Feel free to open an issue `here <http://github.com/notanumber/xapian-haystack/issues>`_
or pull request your work.
You can ask questions on the django-haystack `mailing list <http://groups.google.com/group/django-haystack/>`_
or in the `irc channel <irc://irc.freenode.net/haystack>`_.
or in the irc ``#haystack``.