Fixed deprecation warning

django.conf.urls.defaults is now deprecated. Use django.conf.urls instead.
Maintain Django 1.3 compatibility
Removed star imports
Pass active backend to index queryset calls (closes #534)

Now the Index index_queryset() and read_queryset() methods will be called with
the active backend name so they can optionally perform backend-specific
filtering.

This is extremely useful when using something like Solr cores to maintain
language specific backends, allowing an Index to select the appropriate
documents for each language::

    def index_queryset(self, using=None):
        return Post.objects.filter(language=using)

Changes:
    * clear_index, update_index and rebuild_index all default to processing
      *every* backend. ``--using`` may now be provided multiple times to select
      a subset of the configured backends.
    * Added examples to the Multiple Index documentation page
Solr: use nested query syntax for AltParser queries

The previous implementation would, given a query like this::

    sqs.filter(content=AltParser('dismax', 'library', qf="title^2 text" mm=1))

generate a query like this::

    {!dismax v=library qf="title^2 text" mm=1}

This works in certain situations but causes Solr to choke while parsing it
when Haystack wraps this term in parentheses::

    org.apache.lucene.queryParser.ParseException: Cannot parse '({!dismax mm=1 qf='title^2 text institution^0.8' v=library})':
    Encountered " &lt;RANGEEX_GOOP&gt; "qf=\'title^1.25 "" at line 1, column 16.

The solution is to use the nested query syntax described here:

    http://searchhub.org/2009/03/31/nested-queries-in-solr/

This will produce a query like this, which works with Solr 3.6.2::

    (_query_:"{!edismax mm=1 qf='title^1.5 text institution^0.5' v=library}")

Leaving the actual URL query string looking like this::

    q=%28_query_%3A%22%7B%21edismax+mm%3D1+qf%3D%27title%5E1.5+text+institution%5E0.5%27+v%3Dlibrary%7D%22%29

* Tests updated for the new query generation output
* A Solr backend task was added to actually run the dismax queries and verify
  that we're not getting Solr 400s errors due to syntax gremlins
Setup custom routers before settings up signal processor.

Fixes https://github.com/toastdriven/django-haystack/issues/727
Better Solr AltParser quoting (closes #730)

Previously the Solr AltParser implementation embedded the search term as an
attribte inside the {!…} construct, which required it to be doubly escaped.

This change contributed by @ivirabyan moves the value outside the query,
requiring only our normal quoting:

    q=(_query_:"{!edismax}Assassin's Creed")

instead of:

    q=(_query_:"{!edismax v='Assassin's Creed'}")

Thanks @ivirabyan for the patch!
ElasticSearch: fix AltParser test

AltParser queries are still broken but that fucntionality has only been
listed as supported on Solr.
Remove redundant __name__ assignment on SearchView

__name__ was being explicitly set to a value which was the same as the
default value.

Additionally corrected the obsolete __name__ method declaration in the
documentation which reflected the code prior to SHA:89d8096 in 2010.
Simple: removed conflicting score field from raw result objects

This keeps consistency with the Solr backend, which resolves this conflict
in the same manner.
Merge pull request #742 from bigjust/simple-backend-score-fix

Simple: removed conflicting score field from raw result objects
using force_text for indexing message.

verbose_name_plural may be a functional proxy object from ugettext_lazy,
it should be forced to be a string!
Solr build_solr_schema: fixed a bug in build_solr_schema. Thanks to mjumbewu for the report!

If you tried to run build_solr_schema with a backend that supports
schema building, but was not Solr (like Whoosh), then you would get an
invalid schema.  This fix raises the ImproperlyConfigured exception
with a proper message.
Merge pull request #743 from bigjust/solr-managementcmd-fix

Solr build_solr_schema: fixed a bug in build_solr_schema. Thanks to mjum...
Merge pull request #698 from gjb83/master

Fixed deprecation warning for url imports on Django 1.3

Thanks to @gjb83 for the patch.
Merge pull request #740 from acdha/simplify-search-view-name-property

Remove redundant __name__ assignment on SearchView
replacing `force_text` with `force_unicode`. #746
Simple: Fix bug in score field collision

Previous commit 0a9c919 broke the simple backend for models that
didn't have an indexed score field.  Added a test to cover regression.
Set zip_safe in setup.py to prevent egg creation.

This is a work around for a bug in Django that prevents detection of management commands embedded in packages installed as setuptools eggs.
Merge pull request #752 from bigjust/master

Fix Simple Score field collision