Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pin django-haystack to latest version 2.5.1 #773

Merged
merged 2 commits into from
Dec 9, 2016

Conversation

pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Dec 9, 2016

django-haystack is not pinned to a specific version.

I'm pinning it to the latest version 2.5.1 for now.

These links might come in handy: PyPI | Changelog | Homepage

Changelog

2.4.1


  • V2.4.1. [Chris Adams]
  • Minimal changes to the example project to allow test use. [Chris
    Adams]
  • Merge remote-tracking branch 'django-haystack/pr/1261' [Chris Adams]

The commit in 1252 / 1251 was based on the assumption that the
tutorial used the new generic views, which is not yet correct.

This closes 1261 by restoring the wording and adding some tests to
avoid regressions in the future before the tutorial is overhauled.

  • Rename 'page_obj' with 'page' in the tutorial, section Search Template
    as there is no 'page_obj' in the controller and this results giving
    'No results found' in the search. [bboneva]
  • Style cleanup. [Chris Adams]
  • Remove duplicate & unused imports
  • PEP-8 indentation & whitespace
  • Use foo not in bar instead of not foo in bar
  • Update backend logging style. [Chris Adams]
  • Make Whoosh message consistent with the other backends
  • Pass exception info to loggers in except: blocks
  • PEP-8
  • Avoid unsafe default value on backend clear() methods. [Chris Adams]

Having a mutable structure like a list as a default value is unsafe;
this commit changes that to the standard None.

  • Merge pull request 1254 from chocobn69/master. [Chris Adams]

Update for API change in elasticsearch 1.8 (closes 1253)

Thanks to chocobn69 for the patch

  • Fix 1253. [choco]
  • Tests: update Solr launcher for changed mirror format. [Chris Adams]

The Apache mirror-detection script appears to have changed its response
format recently. This change handles that and makes future error
messages more explanatory.

  • Bump doc version numbers - closes 1105. [Chris Adams]
  • Merge pull request 1252 from rhemzo/master. [Chris Adams]

Update tutorial.rst (closes 1251)

Thanks to rhemzo for the patch

  • Update tutorial.rst. [rhemzo]

change page for page_obj

  • Merge pull request 1240 from speedplane/improve-cache-fill. [Chris
    Adams]

Use a faster implementation of query result cache

  • Use a faster implementation of this horrible cache. In my tests it
    runs much faster and uses far less memory. [speedplane]
  • Merge pull request 1149 from lovmat/master. [Chris Adams]

FacetedSearchMixin bugfixes and improvements

  • Updated documentation & example code
  • Fixed inheritance chain
  • Added facet_fields

Thanks to lovmat for the patch

  • Updated documentation, facet_fields attribute. [lovmat]
  • Added facet_fields attribute. [lovmat]

Makes it easy to include facets into FacetedSearchVIew

  • Bugfixes. [lovmat]
  • Merge pull request 1232 from dlo/patch-1. [Chris Adams]

Rename elasticsearch-py to elasticsearch in docs

Thanks to dlo for the patch

  • Rename elasticsearch-py to elasticsearch in docs. [Dan Loewenherz]
  • Update wording in SearchIndex get_model exception. [Chris Adams]

Thanks to Greg Brown (gregplaysguitar) for the patch

Closes 1223

  • Corrected exception wording. [Greg Brown]
  • Allow failures on Python 2.6. [Chris Adams]

Some of our test dependencies like Mock no longer support it. Pinning
Mock==1.0.1 on Python 2.6 should avoid that failure but the days of
Python 2.6 are clearly numbered.

  • Travis: stop testing unsupported versions of Django on Python 2.6.
    [Chris Adams]
  • Use Travis’ matrix support rather than tox. [Chris Adams]

This avoids a layer of build setup and makes the Travis
console reports more useful

  • Tests: update the test version of Solr in use. [Chris Adams]

4.7.2 has disappeared from most of the Apache mirrors

2.4.0


  • Release 2.4.0. [Chris Adams]
  • Merge pull request 1208 from ShawnMilo/patch-1. [Chris Adams]

Fix a typo in the faceting docs

  • Possible typo fix. [Shawn Milochik]

It seems that this was meant to be results.

  • 2.4.0 release candidate 2. [Chris Adams]
  • Fix Django 1.9 deprecation warnings. [Ilan Steemers]
  • replaced get_model with haystack_get_model which returns the right function depending on the Django version
  • get_haystack_models is now compliant with > Django 1.7

Closes 1206

  • Documentation: update minimum versions of Django, Python. [Chris
    Adams]
  • V2.4.0 release candidate. [Chris Adams]
  • Bump version to 2.4.0.dev1. [Chris Adams]
  • Travis: remove Django 1.8 from allow_failures. [Chris Adams]
  • Tests: update test object creation for Django 1.8. [Chris Adams]

Several of the field tests previously assigned a related test model
instance before saving it::

 mock_tag = MockTag(name='primary')
 mock = MockModel()
 mock.tag = mock_tag

Django 1.8 now validates this dodgy practice and throws an error.

This commit simply changes it to use create() so the mock_tag will
have a pk before assignment.

  • Update AUTHORS. [Chris Adams]
  • Tests: fix deprecated Manager.get_query_set call. [Chris Adams]
  • Updating haystack to test against django 1.8. [Chris Adams]

Updated version of troygrosfield's patch updating the test-runner for
Django 1.8

Closes 1175

  • Travis: allow Django 1.8 failures until officially supported. [Chris
    Adams]

See 1175

  • Remove support for Django 1.5, add 1.8 to tox/travis. [Chris Adams]

The Django project does not support 1.5 any more and it's the source of
most of our false-positive test failures

  • Use db.close_old_connections instead of close_connection. [Chris
    Adams]

Django 1.8 removed the db.close_connection method.

Thanks to Alfredo Armanini (phingage) for the patch

  • Fix mistake in calling super TestCase method. [Ben Spaulding]

Oddly this caused no issue on Django <= 1.7, but it causes numerous
errors on Django 1.8.

  • Correct unittest imports from commit e37c1f3. [Ben Spaulding]
  • Prefer stdlib unittest over Django's unittest2. [Ben Spaulding]

There is no need to fallback to importing unittest2 because Django 1.5
is the oldest Django we support, so django.utils.unittest is guaranteed
to exist.

  • Prefer stdlib OrderedDict over Django's SortedDict. [Ben Spaulding]

The two are not exactly they same, but they are equivalent for
Haystack's needs.

  • Prefer stdlib importlib over Django's included version. [Ben
    Spaulding]

The app_loading module had to shuffle things a bit. When it was
importing the function it raised a RuntimeError. Simply importing
the module resolved that.

  • Docs: explain how field boosting interacts with filter. [Chris Adams]

Thanks to amjoconn for contributing a doc update to help newcomers

Closes 1043

  • Add tests for values/values_list slicing. [Chris Adams]

This confirms that 1019 is fixed

  • Update_index: avoid gaps in removal logic. [Chris Adams]

The original logic did not account for the way removing records
interfered with the pagination logic.

Closes 1194

  • Update_index: don't use workers to remove stale records. [Chris Adams]

There was only minimal gain to this because, unlike indexing, removal is
a simple bulk operation limited by the search engine.

See 1194
See 1201

  • Remove lxml dependency. [Chris Adams]

pysolr 3.3.2+ no longer requires lxml, which saves a significant install
dependency

  • Allow individual records to be skipped while indexing. [Chris Adams]

Previously there was no easy way to skip specific objects other than
filtering the queryset. This change allows a prepare method to raise
SkipDocument after calling methods or making other checks which cannot
easily be expressed as database filters.

Thanks to Felipe Prenholato (chronossc) for the patch

Closes 380
Closes 1191

  • Update_index: avoid "MySQL has gone away error" with workers. [Eric
    Bressler (Platform)]

This fixes an issue with a stale database connection being passed to
a multiprocessing worker when using --remove

Thanks to ebressler for the patch

Closes 1201

  • Depend on pysolr 3.3.1. [Chris Adams]
  • Start-solr-test-server: avoid Travis dependency. [Chris Adams]

This will now fall back to the current directory when run outside of our Travis-CI environment

  • Fix update_index --remove handling. [Chris Adams]
  • Fix support for custom keys by reusing the stored value rather than
    regenerating following the default pattern
  • Batch remove operations using the total number of records
    in the search index rather than the database

Closes 1185
Closes 1186
Closes 1187

  • Merge pull request 1177 from paulshannon/patch-1. [Chris Adams]

Update TravisCI link in README

  • Update TravisCI link. [Paul Shannon]

I think the repo got changed at some point and the old project referenced at travisci doesn't exist anymore...

  • Travis: enable containers. [Chris Adams]
  • Docs: correct stray GeoDjango doc link. [Chris Adams]
  • Document: remove obsolete Whoosh Python 3 warning. [Chris Adams]

Thanks to gitaarik for the pull request

Closes 1154
Fixes 1108

  • Remove method_decorator backport (closes 1155) [Chris Adams]

This was no longer used anywhere in the Haystack source or documentation

  • Travis: enable APT caching. [Chris Adams]
  • Travis: update download caching. [Chris Adams]
  • App_loading cleanup. [Chris Adams]
  • Add support for Django 1.7+ AppConfig
  • Rename internal app_loading functions to have haystack_ prefix to make
    it immediately obvious that they are not Django utilities and start
  • Add tests to avoid regressions for apps nested with multiple levels of
    module hierarchy like raven.contrib.django.raven_compat
  • Refactor app_loading logic to make it easier to remove the legacy
    compatibility code when we eventually drop support for older versions
    of Django

Fixes 1125
Fixes 1150
Fixes 1152
Closes 1153

  • Switch defaults closer to Python 3 defaults. [Chris Adams]
  • Add future imports:

isort --add_import 'from future import absolute_import, division, print_function, unicode_literals'

  • Add source encoding declaration header
  • Setup.py: use strict PEP-440 dev version. [Chris Adams]

The previous version was valid as per PEP-440 but triggers a warning in
pkg_resources

  • Merge pull request 1146 from kamilmowinski/patch-1. [Chris Adams]

Fix typo in SearchResult documentation

  • Update searchresult_api.rst. [kamilmowinski]
  • Merge pull request 1143 from wicol/master. [Chris Adams]

Fix deprecation warnings in Django 1.6.X (thanks wicol)

  • Fix deprecation warnings in Django 1.6.X. [Wictor]

Options.model_name was introduced in Django 1.6 together with a deprecation warning:
django/django@ec469ad

  • Travis: move tox setup to before_script. [Chris Adams]

This should cause dependency installation problems to show up as build
errors rather than outright failures

  • Update ElasticSearch defaults to allow autocompleting numbers. [Chris
    Adams]

Previously the defaults for ElasticSearch used the lowercase
tokenizer, which prevented numbers from being autocompleted.

Thanks to Phill Tornroth (phill-tornroth) for contributing a patch
which changes the default settings to use the standard tokenizer
with the lowercase filter

Closes 1056

  • Update documentation for new class-based views. [Chris Adams]

Thanks to troygrosfield for the pull-request

Closes 1139
Closes 1133
See 1130

  • Added documentation for configuring facet behaviour. [Chris Adams]

Thanks to Philippe Luickx for the contribution

Closes 1111

  • UnifiedIndex has a stable interface to get all indexes. [Chris Adams]

Previously it was possible for UnifiedIndexes.indexes to be empty when
called before the list had been populated. This change deprecates
accessing .indexes directly in favor of a get_indexes() accessor
which will call self.build() first if necessary.

Thanks to Phill Tornroth for the patch and tests.

Closes 851

  • Add support for SQ in SearchQuerySet.narrow() (closes 980) [Chris
    Adams]

Thanks to Andrei Fokau (andreif) for the patch and tests

  • Disable multiprocessing on Python 2.6 (see 1001) [Chris Adams]

multiprocessing.Pool.join() hangs reliably on Python 2.6 but
not any later version tested. Since this is an optional
feature we’ll simply disable it

  • Bump version number to 2.4.0-dev. [Chris Adams]
  • Update_index: wait for all pool workers to finish. [Chris Adams]

There was a race condition where update_index() would return
before all of the workers had finished updating Solr. This
manifested itself most frequently as Travis failures
for the multiprocessing test (see 1001).

  • Tests: Fix ElasticSearch index setup (see 1093) [Chris Adams]

Previously when clear_elasticsearch_index() was called to
reset the tests, this could produce confusing results
because it cleared the mappings without resetting the
backend’s setup_complete status and thus fields which were
expected to have a specific type would end up being inferred

With this changed test_regression_proper_start_offsets and
test_more_like_this no longer fail

  • Update rebuild_index --nocommit handling and add tests. [Chris Adams]

rebuild_index builds its option list by combining the options from
clear_index and update_index. This previously had a manual exclude list
for options which were present in both commands to avoid conflicts but
the nocommit option wasn't in that list.

This wasn't tested because our test suite uses call_command rather than
invoking the option parser directly.

This commit also adds tests to confirm that --nocommit will actually
pass commit=False to clear_index and update_index.

Closes 1140
See 1090

  • Support ElasticSearch 1.x distance filter syntax (closes 1003) [Chris
    Adams]

The elasticsearch 1.0 release was backwards incompatible
with our previous usage.

Thanks to dulaccc for the patch adding support.

  • Docs: add Github style guide link to pull request instructions. [Chris
    Adams]

The recent Github blog post makes a number of good points:

https://github.com/blog/1943-how-to-write-the-perfect-pull-request

  • Fixed exception message when resolving model_attr. [Wictor]

This fixes the error message displayed when model_attr references an
unknown attribute.

Thanks to wicol for the patch

Closes 1094

  • Compatibility with Django 1.7 app loader (see 1097) [Chris Adams]
  • Added wrapper around get_model, so that Django 1.7 uses the new app
    loading mechanism.
  • Added extra model check to prevent that a simple module is treated as
    model.

Thanks to Dirk Eschler (deschler) for the patch.

  • Fix index_fieldname to match documentation (closes 825) [Chris Adams]

jarig contributed a fix to ensure that index_fieldname renaming does
not interfere with using the field name declared on the index.

  • Add tests for Solr/ES spatial order_by. [Chris Adams]

This exists primarily to avoid the possibility of breaking
compatibility with the inconsistent lat, lon ordering used
by Django, Solr and ElasticSearch.

  • Remove undocumented order_by_distance [Chris Adams]

This path was an undocumented artifact of the original
geospatial feature-branch back in the 1.X era. It wasn’t
documented and is completely covered by the documented API.

  • ElasticSearch tests: PEP-8 cleanup. [Chris Adams]
  • Implement managers tests for spatial features. [Chris Adams]

This is largely shadowed by the actual spatial tests but it
avoids surprises on the query generation

  • Minor PEP-8
  • Remove unreferenced add_spatial methods. [Chris Adams]

SolrSearchQuery and ElasticsearchSearchQuery both defined
an add_spatial method which was neither called nor
documented.

  • Remove legacy httplib/httplib2 references. [Chris Adams]

We’ve actually delegated the actual work to requests but the
docs & tests had stale references

  • Tests: remove legacy spatial backend code. [Chris Adams]

This has never run since the solr_native_distance backend
did not exist and thus the check always failed silently

  • ElasticSearch backend: minor PEP-8 cleanup. [Chris Adams]
  • Get-solr-download-url: fix Python 3 import path. [Chris Adams]

This allows the scripts to run on systems where Python 3 is
the default version

  • Merge pull request 1130 from troygrosfield/master. [Chris Adams]

Added generic class based search views

(thanks troygrosfield)

  • Removed "expectedFailure". [Troy Grosfield]
  • Minor update. [Troy Grosfield]
  • Added tests for the generic search view. [Troy Grosfield]
  • Hopefully last fix for django version checking. [Troy Grosfield]
  • Fix for django version check. [Troy Grosfield]
  • Adding fix for previously test for django 1.7. [Troy Grosfield]
  • Adding py34-django1.7 to travis. [Troy Grosfield]
  • Test for the elasticsearch client. [Troy Grosfield]
  • Added unicode_literals import for py 2/3 compat. [Troy Grosfield]
  • Added generic class based search views. [Troy Grosfield]
  • Merge pull request 1101 from iElectric/nothandledclass. [Chris Adams]

Report correct class when raising NotHandled

  • Report correct class when raising NotHandled. [Domen Kožar]
  • Merge pull request 1090 from andrewschoen/feature/no-commit-flag.
    [Chris Adams]

Adds a --nocommit arg to the update_index, clear_index and rebuild_index management command.

  • Adds a --nocommit arg to the update_index, clear_index and
    rebuild_index management commands. [Andrew Schoen]
  • Merge pull request 1103 from pkafei/master. [Chris Adams]

Update documentation to reference Solr 4.x

  • Changed link to official archive site. [Portia Burton]
  • Added path to schema.xml. [Portia Burton]
  • Added latest version of Solr to documentation example. [Portia Burton]
  • Update ElasticSearch version requirements. [Chris Adams]
  • Elasticsearch's python api by default has _source set to False, this
    causes keyerror mentioned in bug 1019. [xsamurai]
  • Solr: clear() won’t call optimize when commit=False. [Chris Adams]

An optimize will trigger a commit implicitly so we’ll avoid
calling it when the user has requested not to commit

  • Bumped version (closes 1112) [Dan Watson]
  • Travis: allow PyPy builds to fail. [Chris Adams]

This is currently unstable and it's not a first-class supported platform
yet

  • Tests: fix Solr server tarball test. [Chris Adams]

On a clean Travis instance, the tarball won't exist

  • Tests: have Solr test server startup script purge corrupt tarballs.
    [Chris Adams]

This avoids tests failing if a partial download is cached by Travis

  • Merge pull request 1084 from streeter/admin-mixin. [Daniel Lindsley]

Document and add an admin mixin

  • Document support for searching in the Django admin. [Chris Streeter]
  • Add some spacing. [Chris Streeter]
  • Create an admin mixin for external use. [Chris Streeter]

There are cases where one might have a different base admin class, and
wants to use the search features in the admin as well. Creating a mixin
makes this a bit cleaner.

2.3.2


  • V2.3.2 maintenance update. [Chris Adams]
  • Fix 1253. [choco]
  • V2.3.2 pre-release version bump. [Chris Adams]
  • Allow individual records to be skipped while indexing. [Chris Adams]

Previously there was no easy way to skip specific objects other than
filtering the queryset. This change allows a prepare method to raise
SkipDocument after calling methods or making other checks which cannot
easily be expressed as database filters.

Thanks to Felipe Prenholato (chronossc) for the patch

Closes 380
Closes 1191

2.3.1


  • V2.3.1. [Chris Adams]
  • Tolerate non-importable apps like django-debug-toolbar. [Chris Adams]

If your installed app isn't even a valid Python module, haystack will
issue a warning but continue.

Thanks to gojomo for the patch

Closes 1074
Closes 1075

  • Allow apps without models.py on Django <1.7. [Chris Adams]

This wasn't officially supported by Django prior to 1.7 but is used by
some third-party apps such as Grappelli

This commit adds a somewhat contrived test app to avoid future
regressions by ensuring that the test suite always has an application
installed which does not have models.py

See 1073

2.3.0


  • Travis: Enable IRC notifications. [Chris Adams]
  • Fix app loading call signature. [Chris Adams]

Updated code from 1016 to ensure that get_models always
returns a list (previously on Django 1.7 it would return
the bare model when called with an argument of the form
app.modelname)

Add some basic tests

  • App loading: use ImproperlyConfigured for bogus app names. [Chris
    Adams]

This never worked but we’ll be more consistent and return
ImproperlyConfigured instead of a generic LookupError

  • App Loading: don’t suppress app-registry related exceptions. [Chris
    Adams]

This is just asking for trouble in the future. If someone comes up with
an edge case, we should add a test for it

  • Remove Django version pin from install_requires. [Chris Adams]
  • Django 1.7 support for app discovery. [Chris Adams]
  • Refactored Xaroth’s patch from 1015 into a separate utils
    module
  • PEP-8 cleanup
  • Start the process of updating for v2.3 release. [Chris Adams]
  • Django 1.7 compatibility for model loading. [Chris Adams]

This refactors the previous use of model _meta.module_name and updates
the tests so the previous change can be tested safely.

Closes 981
Closes 982

  • Update tox Django version pins. [Chris Adams]
  • Mark expected failures for Django 1.7 (see 1069) [Chris Adams]
  • Django 1.7: ensure that the app registry is ready before tests are
    loaded. [Chris Adams]

The remaining test failures are due to some of the oddities in model
mocking, which can be solved by overhauling the way we do tests and
mocks.

  • Tests: Whoosh test overhaul. [Chris Adams]
  • Move repetitive filesystem reset logic into WhooshTestCase which
    cleans up after itself
  • Use mkdtemp instead of littering up the current directory with a
    'tmp' subdirectory
  • Use skipIf rather than expectFailure on test_writable to disable
    it only when STORAGE=ram rather than always
  • Unpin elasticsearch library version for testing. [Chris Adams]
  • Tests: add MIDDLEWARE_CLASSES for Django 1.7. [Chris Adams]
  • Use get_model_ct_tuple to generate template name. [Chris Adams]
  • Refactor simple_backend to use get_model_ct_tuple. [Chris Adams]
  • Haystack admin: refactor to use get_model_ct_tuple. [Chris Adams]
  • Consolidate model meta references to use get_model_ct (see 981)
    [Chris Adams]

This use of a semi-public Django interface will break in Django 1.7
and we can start preparing by using the existing
haystack.utils.get_model_ct function instead of directly accessing
it everywhere.

  • Refactor get_model_ct to handle Django 1.7, add tuple version. [Chris
    Adams]

We have a mix of model _meta access which usually expects strings but in
a few places needs raw values. This change adds support for Django 1.7
(see https://code.djangoproject.com/ticket/19689) and allows raw tuple
access to handle other needs in the codebase

  • Add Django 1.7 warning to Sphinx docs as well. [Chris Adams]

2.2.1


  • Mark 2.2.X as incompatible with Django 1.7. [Chris Adams]
  • Tests: don't suppress Solr stderr logging. [Chris Adams]

This will make easier to tell why Solr sometimes goes away on Travis

  • Update Travis & Tox config. [Chris Adams]
  • Tox: wait for Solr to start before running tests
  • Travis: allow solr & pip downloads to be cached
  • Travis now uses start-solr-test-server.sh instead of travis-solr
  • Test Solr configuration uses port 9001 universally as per the
    documentation
  • Change start-solr-test-server.sh to change into its containing
    directory, which also allows us to remove the realpath dependency
  • Test Solr invocation matches pysolr
    • Use get-solr-download-url script to pick a faster mirror
    • Upgrade to Solr 4.7.2
  • Travis, Tox: add Django 1.7 targets. [Chris Adams]
  • Merge pull request 1055 from andreif/feature/realpath-fallback-osx.
    [Chris Adams]
  • Fallback to pwd if realpath is not available. [Andrei Fokau]
  • Merge pull request 1053 from gandalfar/patch-1. [Chris Adams]
  • Update example for Faceting to reference page.object_list. [Jure
    Cuhalev]

Instead of results - ref 1052

  • Add PyPy targets to Tox & Travis. [Chris Adams]

Closes 1049

  • Merge pull request 1044 from areski/patch-1. [Chris Adams]

Update Xapian install instructions (thanks areski)

  • Update Xapian install. [Areski Belaid]
  • Docs: fix signal processors link in searchindex_api. [Chris Adams]

Correct a typo in b676b17dbc4b29275a019417e7f19f531740f05e

  • Merge pull request 1050 from jogwen/patch-2. [Chris Adams]
  • Link to 'signal processors' [Joanna Paulger]
  • Merge pull request 1047 from g3rd/patch-1. [Chris Adams]

Update the installing search engine documentation URL (thanks g3rd)

  • Fixed the installing search engine doc URL. [Chad Shrock]
  • Merge pull request 1025 from reinout/patch-1. [Chris Adams]

Fixed typo in templatetag docs example (thanks to reinout)

  • Fixed typo in example. [Reinout van Rees]

It should be css_class in the template tag example instead of just class. (It is mentioned correctly in the syntax line earlier).

2.2.0


  • Release v2.2.0. [Chris Adams]
  • Test refactor - merge all the tests into one test suite (closes 951)
    [Chris Adams]

Major refactor by honzakral which stabilized the test suite, makes it easier to run and add new tests and
somewhat faster, too.

  • Merged all the tests
  • Mark tests as skipped when a backend is not available (e.g. no ElasticSearch or Solr connection)
  • Massively simplified test runner (python setup.py test)

Minor updates:

  • Travis:
  • Test Python 3.4
  • Use Solr 4.6.1
  • Simplified legacy test code which can now be replaced by the test utilities in newer versions of Django
  • Update ElasticSearch client & tests for ES 1.0+
  • Add option for SearchModelAdmin to specify the haystack connection to use
  • Fixed a bug with RelatedSearchQuerySet caching using multiple instances (429d234)
  • RelatedSearchQuerySet: move class globals to instance properties.
    [Chris Adams]

This caused obvious failures in the test suite and presumably
elsewhere when multiple RelatedSearchQuerySet instances were in use

  • Merge pull request 1032 from maikhoepfel/patch-1. [Justin Caratzas]

Drop unused variable when post-processing results

  • Drop unused variable when post-processing results. [Maik Hoepfel]

original_results is not used in either method, and can be safely removed.

  • 404 when initially retrieving mappings is ok. [Honza Král]
  • Ignore 400 (index already exists) when creating an index in
    Elasticsearch. [Honza Král]
  • ElasticSearch: update clear() for 1.x+ syntax. [Chris Adams]

As per http://www.elasticsearch.org/guide/en/elasticsearch/reference/1.x/docs-delete-by-query.html this should be nested inside a
top-level query block:

{“query”: {“query_string”: …}}

  • Add setup.cfg for common linters. [Chris Adams]
  • ElasticSearch: avoid KeyError for empty spelling. [Chris Adams]

It was possible to get a KeyError when spelling suggestions were
requested but no suggestions are returned by the backend.

Thanks to Steven Skoczen (skoczen) for the patch

  • Merge pull request 970 from tobych/patch-3. [Justin Caratzas]

Improve punctuation in super-scary YMMV warning

  • Improve punctuation in super-scary YMMV warning. [Toby Champion]
  • Merge pull request 969 from tobych/patch-2. [Justin Caratzas]

Fix typo; clarify purpose of search template

  • Fix typo; clarify purpose of search template. [Toby Champion]
  • Merge pull request 968 from tobych/patch-1. [Justin Caratzas]

Fix possessive "its" in tutorial.rst

  • Fix possessive "its" [Toby Champion]
  • Merge pull request 938 from Mbosco/patch-1. [Daniel Lindsley]

Update tutorial.rst

  • Update tutorial.rst. [BoscoMW]
  • Fix logging call in SQS post_process_results (see 648) [Chris Adams]

This was used in an except: handler and would only be executed when a
load_all() queryset retrieved a model which wasn't registered with the
index.

  • Merge pull request 946 from gkaplan/spatial-docs-fix. [Daniel
    Lindsley]

Small docs fix for spatial search example code

  • Fix typo with instantiating Distance units. [Graham Kaplan]
  • Solr backend: correct usage of pysolr delete. [Chris Adams]

We use HAYSTACK_ID_FIELD in other places but the value passed to
pysolr's delete() method must use the keyword argument id:

https://github.com/toastdriven/pysolr/blob/v3.1.0/pysolr.pyL756

Although the value is passed to Solr an XML tag named &lt;id&gt; it will
always be checked against the actual uniqueKey field even if it uses
a custom name:

https://wiki.apache.org/solr/UpdateXmlMessagesA.22delete.22_documents_by_ID_and_by_Query

Closes 943

  • Add a note on elasticsearch-py versioning with regards to 1.0. [Honza
    Král]
  • Ignore 404 when removing a document from elasticsearch. [Honza Král]

Fixes 942

  • Ignore missing index during .clear() [Honza Král]

404 in indices.delete can only mean that the index is there, no issue
for a delete operation

Fixes 647

  • Tests: remove legacy targets. [Chris Adams]
  • Django 1.4 is no longer supported as per the documentation
  • Travis: use Python 3.3 targets instead of 3.2
  • Tests: update pysolr requirement to 3.1.1. [Chris Adams]

3.1.1 shipped a fix for a change in the Solr response format for the
content extraction handler

  • Merge pull request 888 from acdha/888-solr-field-list-regression.
    [Chris Adams]

Solr / ElasticSearch backends: restore run() kwargs handling

This fixes an earlier regression which did not break functionality but made .values() and .values_list() much less of an optimization than intended.

925 will be a more comprehensive refactor but this is enough of a performance win to be worth including if a point release happens before 925 lands.

  • ElasticSearch backend: run() kwargs are passed directly to search
    backend. [Chris Adams]

This allows customization by subclasses and also fixes 888
by ensuring that the custom field list prepared by
ValuesQuerySet and ValuesListQuerySet is actually used.

  • Solr backend: run() kwargs are passed directly to search backend.
    [Chris Adams]

This allows customization by subclasses and also fixes 888
by ensuring that the custom field list prepared by
ValuesQuerySet and ValuesListQuerySet is actually used.

  • Tests: skip Solr content extraction with old PySolr. [Chris Adams]

Until pysolr 3.1.1 ships there's no point in running the Solr content
extraction tests because they'll fail:

django-haystack/pysolr#104

  • Make sure DJANGO_CT and DJANGO_ID fields are not analyzed. [Honza
    Král]
  • No need to store fields separately in elasticsearch. [Honza Král]

That will justlead to fields being stored once - as part of _source as
well as in separate index that would never be used by haystack (would be
used only in special cases when requesting just that field, which can
be, with minimal overhead, still just extracted from the _source as it
is).

  • Remove extra code. [Honza Král]
  • Simplify mappings for elasticsearch fields. [Honza Král]
  • don't specify defaults (index:analyzed for strings, boost: 1.0)
  • omit extra settings that have little or negative effects
    (term_vector:with_positions_offsets)
  • only use type-specific settings (not_analyzed makes no sense for
    non-string types)

Fixes 866

  • Add narrow queries as individual subfilter to promote caching. [Honza
    Král]

Each narrow query will be cached individually which means more cache
reuse

  • Doc formatting fix. [Honza Král]
  • Allow users to pass in additional kwargs to Solr and Elasticsearch
    backends. [Honza Král]

Fixes 674, 862

  • Whoosh: allow multiple order_by() fields. [Chris Adams]

The Whoosh backend previously prevented the use of more than one
order_by field. It now allows multiple fields as long as every field
uses the same sort direction.

Thanks to qris, overflow for the patch

Closes 627
Closes 919

  • Fix bounding box calculation for spatial queries (closes 718) [Chris
    Adams]

Thanks jasisz for the fix

  • Docs: fix ReST syntax error in searchqueryset_api.rst. [Chris Adams]
  • Tests: update test_more_like_this for Solr 4.6. [Chris Adams]
  • Tests: update test_quotes_regression exception test. [Chris Adams]

This was previously relying on the assumption that a query would not
match, which is Solr version dependent, rather than simply
confirming that no exception is raised

  • Tests: update Solr schema to match current build_solr_schema. [Chris
    Adams]
  • Added fields used in spatial tests: location, username, comment
  • Updated schema for recent Solr
  • Ran xmllint --c14n &quot;$*&quot; | xmllint --format --encode &quot;utf-8&quot; -
  • Tests: update requirements to match tox. [Chris Adams]
  • Move test Solr instructions into a script. [Chris Adams]

These will just rot horribly if they're not actually executed on a
regular basis…

  • Merge pull request 907 from gam-phon/patch-1. [Chris Adams]
  • Fix url for solr 3.5.0. [Yaser Alraddadi]
  • Merge pull request 775 from stefanw/avoid-pks-seen-on-update. [Justin
    Caratzas]

Avoid unnecessary, potentially huge db query on index update

  • Merge branch 'master' into avoid-pks-seen-on-update. [Stefan
    Wehrmeyer]

Change smart_text into smart_bytes as in master

Conflicts:
haystack/management/commands/update_index.py

  • Upgraded python3 in tox to 3.3. [justin caratzas]

3.3 is a better target for haystack than 3.2, due to PEP414

  • Merge pull request 885 from HonzaKral/elasticsearch-py. [Justin
    Caratzas]

Use elasticsearch-py instead of pyelasticsearch.

  • Use elasticsearch-py instead of pyelasticsearch. [Honza Král]

elasticsearch-py is the official Python client for Elasticsearch.

  • Merge pull request 899 from acdha/html5-input-type=search. [Justin
    Caratzas]

Search form <input type="search">

  • Use HTML5 <input type=search> (closes 899) [Chris Adams]
  • Update travis config so that unit tests will run with latest solr +
    elasticsearch. [justin caratzas]
  • Merge remote-tracking branch 'HonzaKral/filtered_queries' Fixes 886.
    [Daniel Lindsley]
  • Use terms filter for DJANGO_CT, much faster. [Honza Král]
  • Cleaner query composition when it comes to filters in ES. [Honza Král]
  • Fixed typo in AUTHORS. [justin caratzas]
  • Added pabluk to AUTHORS. [Pablo SEMINARIO]
  • Fixed ValueError exception when SILENTLY_FAIL=True. [Pablo SEMINARIO]
  • Merge pull request 882 from benspaulding/docs/issue-607. [Justin
    Caratzas]

Remove bit about SearchQuerySet.load_all_queryset deprecation

  • Remove bit about SearchQuerySet.load_all_queryset deprecation. [Ben
    Spaulding]

That method was entirely removed in commit b8048dc0e9e3.

Closes 607. Thanks to bradleyayers for the report.

  • Merge pull request 881 from benspaulding/docs/issue-606. [Justin
    Caratzas]

Fix documentation regarding ModelSearchIndex to match current behavior

  • Fix documentation regarding ModelSearchIndex to match current
    behavior. [Ben Spaulding]

Closes 606. Thanks to bradleyayers for the report.

  • Fixed 575 & 838, where a change in Whoosh 2.5> required explicitly
    setting the Searcher.search() limit to None to restore correct
    results. [Keryn Knight]

Thanks to scenable and Shige Abe (typeshige) for
the initial reports, and to scenable for finding
the root issue in Whoosh.

  • Removed python 1.4 / python 3.2 tox env because thats not possible.
    [justin caratzas]

also pinned versions of requirements for testing

  • Added test for autocomplete whitespace fix. [justin caratzas]
  • Fixed autocomplete() method: spaces in query. [Ivan Virabyan]
  • Fixed basepython for tox envs, thanks --showconfig. [justin caratzas]

also, added latest django 1.4 release, which doesn't error out
currently.

Downgraded python3.3 to python3.2, as thats what the lastest debian
stable includes. I'm working on compiling pypy and python3.3 on the
test box, so those will probably be re-added as time allows.

failing tests: still solr context extraction + spatial

  • Fixed simple backend for django 1.6, _fields was removed. [justin
    caratzas]
  • [tox] run tests for 1.6, fix test modules so they are found by the new
    test runner. [justin caratzas]

These changes are backwards-compatible with django 1.5. As of this
commit, the only failing tests are the Solr extractraction test, and the
spatial tests.

  • Switch solr configs to solr 4. [justin caratzas]

almost all tests passing, but spatial not working

  • Update solr schema template to fix stopwords_en.txt relocation.
    [Patrick Altman]

Seems that in versions >3.6 and >4 stopwords_en.txt moved
to a new location. This won't be backwards compatible for
older versions of solr.

Addresses issues 558, 560
In addition, issue 671 references this problem

  • Pass using to index_queryset for update. [bigjust]
  • Update tox to test pypy, py26, py27, py33, django1.5 and django1.6.
    [bigjust]

django 1.6 doesn't actually work yet, but there are other efforts to get that working

  • Fixed my own spelling test case. How embarrassing. [Dan Watson]
  • Added a spelling test case for ElasticSearch. [Dan Watson]
  • More ElasticSearch test fixes. [Dan Watson]
  • Added some faceting tests for ElasticSearch. [Dan Watson]
  • Fixed ordering issues in the ElasticSearch tests. [Dan Watson]
  • Merge remote-tracking branch 'infoxchange/fix-elasticsearch-index-
    settings-reset' [Daniel Lindsley]
  • Test ensuring recreating the index does not remove the mapping.
    [Alexey Kotlyarov]
  • Reset backend state when deleting index. [Alexey Kotlyarov]

Reset setup_complete and existing_mapping when an index is
deleted. This ensures create_index is called later to restore
the settings properly.

  • Use Django's copy of six. [Dan Watson]
  • Merge pull request 847 from luisbarrueco/mgmtcmd-fix. [Dan Watson]

Fixed an update_index bug when using multiple connections

  • Fixed an update_index bug when using multiple connections. [Luis
    Barrueco]
  • Fixed a missed raw_input call on Python 3. [Dan Watson]
  • Merge pull request 840 from postatum/fix_issue_807. [Justin Caratzas]

Fixed issue 807

  • Fixed issue 807. [postatum]
  • Merge pull request 837 from nicholasserra/signals-docs-fix. [Justin
    Caratzas]

Tiny docs fix in signal_processors example code

  • Tiny docs fix in signal_processors example code. [Nicholas Serra]
  • Merge pull request 413 from phill-tornroth/patch-1. [Justin Caratzas]
  • Silly little change, I know.. but I actually ran into a case where I
    accidentally passed a list of models in without *ing them. When that
    happens, we get a string formatting exception (not all arguments were
    formatted) instead of the useful "that ain't a model, kid" business.
    [Phill Tornroth]
  • Merge pull request 407 from bmihelac/patch-1. [Justin Caratzas]

Fixed doc, query is context variable and not in request.

  • Fixed doc, query is context variable and not in request.
    [bmihelac]
  • Merge pull request 795 from
    davesque/update_excluded_indexes_error_message. [Justin Caratzas]

Improve error message for duplicate index classes

  • Improve error message for duplicate index classes. [David Sanders]

To my knowledge, the 'HAYSTACK_EXCLUDED_INDEXES' setting is no longer
used.

  • Started the v2.1.1 work. [Daniel Lindsley]
  • Avoid unnecessary db query on index update. [Stefan Wehrmeyer]

pks_seen is only needed if objects are removed from
index, so only compute it if necessary.
Improve pks_seen to not build an intermediary list.

2.1.0


  • Bumped to v2.1.0! [Daniel Lindsley]
  • Python 3 support is done, thanks to RevSys & the PSF! Updated
    requirements in the docs. [Daniel Lindsley]
  • Added all the new additions to AUTHORS. [Daniel Lindsley]
  • Merge branch 'py3' [Daniel Lindsley]
  • Added Python 3 compatibility notes. [Daniel Lindsley]
  • Whoosh mostly working under Python 3. See docs for details. [Daniel
    Lindsley]
  • Backported things removed from Django 1.6. [Daniel Lindsley]
  • Final core changes. [Daniel Lindsley]
  • Solr tests all but passing under Py3. [Daniel Lindsley]
  • Elasticsearch tests passing under Python 3. [Daniel Lindsley]

Requires git master (ES 1.0.0 beta) to work properly when using suggestions.

  • Overrides passing under Py3. [Daniel Lindsley]
  • Simple backend ported & passing. [Daniel Lindsley]
  • Whoosh all but fully working under Python 3. [Daniel Lindsley]
  • Closer on porting ES. [Daniel Lindsley]
  • Core tests mostly pass on Py 3. \o/ [Daniel Lindsley]

What's left are 3 failures, all ordering issues, where the correct output is present, but ordering is different between Py2 / Py3.

  • More porting to Py3. [Daniel Lindsley]
  • Started porting to py3. [Daniel Lindsley]
  • Merge pull request 821 from knightzero/patch-1. [Justin Caratzas]

Update autocomplete.rst

  • Update autocomplete.rst. [knightzero]
  • Merge pull request 744 from trigger-corp/master. [Justin Caratzas]

Allow for document boosting with elasticsearch

  • Update the current elasticsearch boost test to also test document
    boosting. [Connor Dunn]
  • Map boost field to _boost in elasticsearch. [Connor Dunn]

Means that including a boost field in a document will cause document level boosting.

  • Added ethurgood to AUTHORS. [Daniel Lindsley]
  • Add test__to_python for elastisearch backend. [Eric Thurgood]
  • Fix datetime instantiation in elasticsearch backend's _to_python.
    [Eric Thurgood]
  • Merge pull request 810 from pabluk/minor-docs-fix. [Chris Adams]

Updated description for TIMEOUT setting - thanks pabluk

  • Updated description for TIMEOUT setting. [Pablo SEMINARIO]
  • Updated the backend support docs. Thanks to kezabelle & dimiro1 for
    the report! [Daniel Lindsley]
  • Added haystack-rqueue to "Other Apps". [Daniel Lindsley]
  • Updated README & index. [Daniel Lindsley]
  • Added installation instructions. [bigjust]
  • Merge pull request 556 from h3/master. [Justin Caratzas]

Updated to 'xapian_backend.XapianEngine' docs & example

  • Updated XapianEngine module path. [h3]
  • Updated XapianEngine module path. [h3]
  • Merge pull request 660 from seldon/master. [Justin Caratzas]

Some minor docs fixes

  • Fixed a few typos in docs. [Lorenzo Franceschini]
  • Add Educreations to who uses Haystack. [bigjust]
  • Merge pull request 692 from stephenpaulger/master. [Justin Caratzas]

Change the README link to latest 1.2 release.

  • Update README.rst. [Stephen Paulger]

Update 1.2.6 link to 1.2.7

  • Merge pull request 714 from miracle2k/patch-1. [Justin Caratzas]

Note enabling INCLUDE_SPELLING requires a reindex.

  • Note enabling INCLUDE_SPELLING requires a reindex. [Michael Elsdörfer]
  • Unicode support in SimpleSearchQuery (closes 793) [slollo]
  • Merge pull request 790 from andrewschoen/feature/haystack-identifier-
    module. [Andrew Schoen]

Added a new setting, HAYSTACK_IDENTIFIER_METHOD, which will allow a cust...

  • Added a new setting, HAYSTACK_IDENTIFIER_METHOD, which will allow
    a custom method to be provided for haystack.utils.get_identifier.
    [Schoen]
  • Fixed an exception log message in elasticsearch backend, and added a
    loading test for elasticsearch. [Dan Watson]
  • Changed exception log message in whoosh backend to use
    class.name instead of just name (closes 641) [Jeffrey
    Tratner]
  • Further bumped the docs on installing engines. [Daniel Lindsley]
  • Update docs/installing_search_engines.rst. [Tom Dyson]

grammar, Elasticsearch version and formatting consistency fixes.

  • Added GroundCity & Docket Alarm to the Who Uses docs. [Daniel
    Lindsley]
  • Started the development on v2.0.1. [Daniel Lindsley]

2.0.0


  • Bumped to v2.0.0! [Daniel Lindsley]
  • Changed how Raw inputs are handled. Thanks to kylemacfarlane for
    the (really good) report. [Daniel Lindsley]
  • Added a (passing) test trying to verify 545. [Daniel Lindsley]
  • Fixed a doc example on custom forms. Thanks to GrivIN and benspaulding
    for patches. [Daniel Lindsley]
  • Added a reserved character for Solr (v4+ supports regexes). Thanks to
    RealBigB for the initial patch. [Daniel Lindsley]
  • Merge branch 'master' of github.com:toastdriven/django-haystack.
    [Jannis Leidel]
  • Fixed the stats tests. [Daniel Lindsley]
  • Adding description of stats support to docs. [Ranjit Chacko]
  • Adding support for stats queries in Solr. [Ranjit Chacko]
  • Added tests for the previous kwargs patch. [Daniel Lindsley]
  • Bug fix to allow object removal without a commit. [Madan Thangavelu]
  • Do not refresh the index after it has been deleted. [Kevin Tran]
  • Fixed naming of manager for consistency. [Jannis Leidel]
  • renamed HaystackManager to SearchIndexManager
  • renamed get_query_set to get_search_queryset
  • Updated the docs on running tests. [Daniel Lindsley]
  • Merge branch 'madan' [Daniel Lindsley]
  • Fixed the case where index_name isn't available. [Daniel Lindsley]
  • Fixing typo to allow manager to switch between different index_labels.
    [Madan Thangavelu]
  • Haystack manager and tests. [Madan Thangavelu]
  • Removing unwanted spaces. [Madan Thangavelu]
  • Object query manager for searchindex. [Madan Thangavelu]
  • Added requirements file for testing. [Daniel Lindsley]
  • Added a unit test for 786. [Dan Watson]
  • Fixed a bug when passing "using" to SearchQuerySet (closes 786).
    [Rohan Gupta]
  • Ignore the env directory. [Daniel Lindsley]
  • Allow for setuptools as well as distutils. [Daniel Lindsley]
  • Merge pull request 785 from mattdeboard/dev-mailing-list. [Chris
    Adams]

Add note directing users to django-haystack-dev mailing list.

  • Add note directing users to django-haystack-dev mailing list. [Matt
    DeBoard]
  • Spelling suggestions for ElasticSearch (closes 769 and 747) [Dan
    Watson]
  • Added support for sending facet options to the backend (closes 753)
    [Dan Watson]
  • More_like_this: honor .models() restriction. [Chris Adams]

Original patch by mattdeboard updated to remove test drift since it was
originally submitted

Closes 593
Closes 543

  • Removed commercial support info. [Daniel Lindsley]
  • Merge pull request 779 from pombredanne/pep386_docfixes. [Jannis
    Leidel]

Update version to 2.0.0b0 in doc conf

  • Update version to 2.0.0b0 in doc conf .. to redeem myself of the
    unlucky 777 minimess. [pombredanne]
  • Merge pull request 778 from falinsky/patch-1. [Justin Caratzas]

Fix bug in setup.py

  • Fix bug. [Sergey Falinsky]
  • Merge pull request 777 from pombredanne/patch-1. [Justin Caratzas]

Update version to be a PEP386 strict with a minor qualifier of 0 for now...

  • Update version to be a PEP386 strict with a minor qualifier of 0 for
    now. [pombredanne]

This version becomes a "strict" version under PEP386 and should be recognized by install/packaging tools (such as distribute/distutils/setuptools) as newer than 2.0.0-beta. This will also help making small increments of the version which brings some sanity when using an update from HEAD and ensure that things will upgrade alright.

  • Update_index: display Unicode model names (closes 767) [Chris Adams]

The model's verbose_name_plural value is included as Unicode but under
Python 2.x the progress message it was included in was a regular
byte-string. Now it's correctly handled as Unicode throughout.

  • Merge pull request 731 from adityar7/master. [Jannis Leidel]

Setup custom routers before settings up signal processor.

  • Setup custom routers before settings up signal processor. [Aditya
    Rajgarhia]

Fixes https://github.com/toastdriven/django-haystack/issues/727

  • Port the from_python method from pyelasticsearch to the
    Elasticsearch backend, similar to to_python in
    181bbc2c010a135b536e4d1f7a1c5ae4c63e33db. [Jannis Leidel]

Fixes 762. Refs 759.

  • Merge pull request 761 from stefanw/simple-models-filter. [Justin
    Caratzas]

Make models filter work on simple backend

  • Make model filter for simple backend work. [Stefan Wehrmeyer]

Adds Stefan Wehrmeyer to AUTHORS for patch

  • Merge pull request 746 from lazerscience/fix-update-index-output.
    [Justin Caratzas]

Using force_text for indexing message

  • Replacing force_text with force_unicode. 746. [Bernhard Vallant]
  • Using force_text for indexing message. [Bernhard Vallant]

verbose_name_plural may be a functional proxy object from ugettext_lazy,
it should be forced to be a string!

  • Support pyelasticsearch 0.4 change (closes 759) [Chris Adams]

pyelasticsearch 0.4 removed the to_python method Haystack used.

Thanks to erikrose for the quick patch

  • Merge pull request 755 from toastdriven/issue/754-doc-build-warning.
    [Chris Adams]
  • Add preceding dots to hyperlink target; fixes issue 754. [Ben
    Spaulding]

This error was introduced in commit faacbcb.

  • Merge pull request 752 from bigjust/master. [Justin Caratzas]

Fix Simple Score field collision

  • Simple: Fix bug in score field collision. [bigjust]

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. [Jannis Leidel]

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 740 from acdha/simplify-search-view-name-property.
    [Chris Adams]

Remove redundant name assignment on SearchView

  • Remove redundant name assignment on SearchView. [Chris Adams]

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.

  • Merge pull request 698 from gjb83/master. [Chris Adams]

Fixed deprecation warning for url imports on Django 1.3

Thanks to gjb83 for the patch.

  • Removed star imports. [gjb83]
  • Maintain Django 1.3 compatibility. [gjb83]
  • Fixed deprecation warning. [gjb83]

django.conf.urls.defaults is now deprecated. Use django.conf.urls instead.

  • Merge pull request 743 from bigjust/solr-managementcmd-fix. [Justin
    Caratzas]

Solr build_solr_schema: fixed a bug in build_solr_schema. Thanks to mjum...

  • Solr build_solr_schema: fixed a bug in build_solr_schema. Thanks to
    mjumbewu for the report! [Justin Caratzas]

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 742 from bigjust/simple-backend-score-fix. [Justin
    Caratzas]
  • Simple: removed conflicting score field from raw result objects.
    [Justin Caratzas]

This keeps consistency with the Solr backend, which resolves this conflict
in the same manner.

  • ElasticSearch: fix AltParser test. [Chris Adams]

AltParser queries are still broken but that fucntionality has only been
listed as supported on Solr.

  • Better Solr AltParser quoting (closes 730) [Chris Adams]

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_:&quot;{!edismax}Assassin&#39;s Creed&quot;)

instead of:

 q=(_query_:&quot;{!edismax v=&#39;Assassin&#39;s Creed&#39;}&quot;)

Thanks ivirabyan for the patch!

  • Solr: use nested query syntax for AltParser queries. [Chris Adams]

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

 sqs.filter(content=AltParser(&#39;dismax&#39;, &#39;library&#39;, qf=&quot;title^2 text&quot; mm=1))

generate a query like this::

 {!dismax v=library qf=&quot;title^2 text&quot; 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 &#39;({!dismax mm=1 qf=&#39;title^2 text institution^0.8&#39; v=library})&#39;:
 Encountered &quot; &amp;lt;RANGEEX_GOOP&amp;gt; &quot;qf=\&#39;title^1.25 &quot;&quot; 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_:&quot;{!edismax mm=1 qf=&#39;title^1.5 text institution^0.5&#39; v=library}&quot;)

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
  • Pass active backend to index queryset calls (closes 534) [Chris
    Adams]

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

  • Because Windows. [Daniel Lindsley]
  • Fixed the docs on debugging to cover v2. Thanks to eltesttox for the
    report. [Daniel Lindsley]
  • That second colon matters. [Daniel Lindsley]
  • Further docs on autocomplete. [Daniel Lindsley]
  • Fixed the imports that would stomp on each other. [Daniel Lindsley]

Thanks to codeinthehole, Attorney-Fee & imacleod for pointing this out.

  • BACKWARD-INCOMPATIBLE: Removed RealTimeSearchIndex in favor of
    SignalProcessors. [Daniel Lindsley]

This only affects people who were using RealTimeSearchIndex (or a
queuing variant) to perform near real-time updates. Those users should
refer to the Migration documentation.

  • Updated ignores. [Daniel Lindsley]
  • Merge pull request 552 from hadesgames/master. [Jannis Leidel]

Fixes process leak when using update_index with workers.

  • Fixed update_index process leak. [Tache Alexandru]
  • Merge branch 'master' of github.com:toastdriven/django-haystack.
    [Jannis Leidel]
  • Merge pull request 682 from acdha/682-update_index-tz-support. [Chris
    Adams]

update_index should use non-naive datetime when settings.USE_TZ=True

  • Tests for update_index timezone support. [Chris Adams]
  • Confirm that update_index --age uses the Django timezone-aware now
    support function
  • Skip this test on Django 1.3
  • Update_index: use tz-aware datetime where applicable. [Chris Adams]

This will allow Django 1.4 users with USE_TZ=True to use update_index with time
windowing as expected - otherwise the timezone offset needs to be manually
included in the value passed to -a

  • Tests: mark expected failures in Whoosh suite. [Chris Adams]

This avoids making it painful to run the test suite and flags the tests which
need attention

  • Tests: mark expected failures in ElasticSearch suite. [Chris Adams]

This avoids making it painful to run the test suite and flags the tests which
need attention

  • Multiple index tests: correct handling of Whoosh teardown. [Chris
    Adams]

We can't remove the Whoosh directory per-test - only after every
test has run…

  • Whoosh tests: use a unique tempdir. [Chris Adams]

This ensures that there's no way for results to persist across runs
and lets the OS clean up the mess if we fail catastrophically

The multiindex and regular whoosh tests will have different prefixes to ease
debugging

  • Merge pull request 699 from acdha/tox-multiple-django-versions.
    [Chris Adams]

Minor tox.ini & test runner tidying

  • Test runner: set exit codes on failure. [Chris Adams]
  • Tox: refactor envlist to include Django versions. [Chris Adams]
  • Expanded base dependencies
  • Set TEST_RUNNER_ARGS=-v0 to reduce console noise
  • Add permutations of python 2.5, 2.6, 2.7 and django 1.3 and 1.4
  • Test runner: add $TEST_RUNNER_ARGS env. variable. [Chris Adams]

This allows you to export TEST_RUNNER_ARGS=-v0 to affect all 9
invocations

  • Tox: store downloads in tmpdir. [Chris Adams]
  • Be a bit more careful when resetting connections in the
    multiprocessing updater. Fixes 562. [Jannis Leidel]
  • Fixed distance handling in result parser of the elasticsearch backend.
    This is basically the second part of 566. Thanks to Josh Drake for
    the initial patch. [Jannis Leidel]
  • Merge pull request 670 from dhan88/master. [Jannis Leidel]

Elasticsearch backend using incorrect coordinates for geo_bounding_box (within) filter

  • Elasticsearch geo_bounding_box filter expects top_left (northwest) and
    bottom_right (southeast). Haystack's elasticsearch backend is passing
    northeast and southwest coordinates instead. [Danny Han]
  • Merge pull request 666 from caioariede/master. [Jannis Leidel]

Fixes incorrect call to put_mapping on ElasticSearch backend

  • Fixes incorrect call to put_mapping on elasticsearch backend. [Caio
    Ariede]
  • Added ericholscher to AUTHORS. [Daniel Lindsley]
  • Add a title for the support matrix so it's linkable. [Eric Holscher]
  • Tests: command-line help and coverage.py support. [Chris Adams]

This makes run_all_tests.sh a little easier to use and simplifies the process of
running under coverage.py

Closes 683

  • Tests: basic help and coverage.py support. [Chris Adams]

run_all_tests.sh now supports --help and --with-coverage

  • Add a CONTRIBUTING.md file for Github. [Chris Adams]

This is a migrated copy of docs/contributing.rst so Github can suggest it when
pull requests are being created

  • Fix combination logic for complex queries. [Chris Adams]

Previously combining querysets which used a mix of logical AND and OR operations
behaved unexpectedly.

Thanks to mjl for the patch and tests in SHA: 9192dbd

Closes 613, 617

  • Added rz to AUTHORS. [Daniel Lindsley]
  • Fixed string joining bug in the simple backend. [Rodrigo Guzman]
  • Added failing test case for 438. [Daniel Lindsley]
  • Fix Solr more-like-this tests (closes 655) [Chris Adams]
  • Refactored the MLT tests to be less brittle in checking only
    the top 5 results without respect to slight ordering
    variations.
  • Refactored LiveSolrMoreLikeThisTestCase into multiple tests
  • Convert MLT templatetag tests to rely on mocks for stability
    and to avoid hard-coding backend assumptions, at the expense
    of relying completely on the backend MLT queryset-level tests
    to exercise that code.
  • Updated MLT code to always assume deferred querysets are
    available (introduced in Django 1.1) and removed a hard-coded
    internal attr check
  • All backends: fixed more_like_this & deferreds. [Chris Adams]

Django removed the get_proxied_model helper function in the 1.3 dev
cycle:

https://code.djangoproject.com/ticket/17678

This change adds support for the simple new property access used by 1.3+

BACKWARD INCOMPATIBLE: Django 1.2 is no longer supported

  • Updated elasticsearch backend to use a newer pyelasticsearch release
    that features an improved API , connection pooling and better
    exception handling. [Jannis Leidel]
  • Added Gidsy to list of who uses Haystack. [Jannis Leidel]
  • Increased the number of terms facets returned by the Elasticsearch
    backend to 100 from the default 10 to work around an issue upstream.
    [Jannis Leidel]

This is hopefully only temporary until it's fixed in Elasticsearch, see elastic/elasticsearch#1776.

  • Merge pull request 643 from stephenmcd/master. [Chris Adams]

Fixed logging in simple_backend

  • Fixed logging in simple_backend. [Stephen McDonald]
  • Added Pitchup to Who Uses. [Daniel Lindsley]
  • Merge branch 'unittest2-fix' [Chris Adams]
  • Better unittest2 detection. [Chris Adams]

This supports Python 2.6 and earlier by shifting the import to look
towards the future name rather than the past

  • Merge pull request 652 from acdha/solr-content-extraction-test-fix.
    [Chris Adams]

Fix the Solr content extraction handler tests

  • Add a minimal .travis.yml file to suppress build spam. [Chris Adams]

Until the travis-config branch is merged in, this can be spread around to avoid
wasting time running builds before we're ready

  • Tests: enable Solr content extraction handler. [Chris Adams]

This is needed for the test_content_extraction test to pass

  • Tests: Solr: fail immediately on config errors. [Chris Adams]
  • Solr tests: clean unused imports. [Chris Adams]
  • Suppress console DeprecationWarnings. [Chris Adams]
  • Merge pull request 651 from acdha/unittest2-fix. [Chris Adams]

Update unittest2 import logic so the tests can actually be run

  • Update unittest2 import logic. [Chris Adams]

We'll try to get it from Django 1.3+ but Django 1.2 users will need to install
it manually

  • Merge pull request 650 from bigjust/patch-1. [Chris Adams]

Fix typo in docstring

  • Fix typo. [Justin Caratzas]
  • Refactor to use a dummy logger that lets you turn off logging. [Travis
    Swicegood]
  • A bunch of Solr testing cleanup. [Chris Adams]
  • Skip test is pysolr isn't available. [Travis Swicegood]
  • Updated Who Uses to correct a backend usage. [Daniel Lindsley]
  • Updated documentation about using the main pyelasticsearch release.
    [Jannis Leidel]
  • Merge pull request 628 from kjoconnor/patch-1. [Jannis Leidel]

Missing `

  • Missing ` [Kevin O'Connor]
  • Fixed a mostly-empty warning in the SearchQuerySet docs. Thanks to
    originell for the report! [Daniel Lindsley]
  • Fixed the "Who Uses" entry on AstroBin. [Daniel Lindsley]
  • Use the match_all query to speed up performing filter only queries
    dramatically. [Jannis Leidel]
  • Fixed typo in docs. Closes 612. [Jannis Leidel]
  • Updated link to celery-haystack repository. [Jannis Leidel]
  • Fixed the docstring of SearchQuerySet.none. Closes 435. [Jannis
    Leidel]
  • Fixed the way quoting is done in the Whoosh backend when using the
    __in filter. [Jason Kraus]
  • Added the solrconfig.xml I use for testing. [Daniel Lindsley]
  • Fixed typo in input types docs. Closes 551. [Jannis Leidel]
  • Make sure an search engine's backend isn't instantiated on every call
    to the backend but only once. Fixes 580. [Jannis Leidel]
  • Restored sorting t

@grischa grischa merged commit b2faa8d into develop Dec 9, 2016
@grischa grischa deleted the pyup-pin-django-haystack-2.5.1 branch December 9, 2016 05:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

settings.py should set up custom routers before setting up the signal processor
2 participants