-------------------
- 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.py#L756
Although the value is passed to Solr an XML tag named ``<id>`` it will
always be checked against the actual ``uniqueKey`` field even if it uses
a custom name:
https://wiki.apache.org/solr/UpdateXmlMessages#A.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:
https://github.com/toastdriven/pysolr/pull/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 "$*" | xmllint --format --encode "utf-8" -`
- 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 acci
- 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.