Skip to content

Commit 2324f8a

Browse files
kezabellejustin caratzas
authored and
justin caratzas
committed
Fixed django-haystack#575 & django-haystack#838, where a change in Whoosh 2.5>
required explicitly setting the Searcher.search() limit to None to restore correct results. Thanks to scenable and Shige Abe (typeshige) for the initial reports, and to scenable for finding the root issue in Whoosh.
1 parent 7db3957 commit 2324f8a

File tree

2 files changed

+4
-5
lines changed

2 files changed

+4
-5
lines changed

haystack/backends/whoosh_backend.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,8 @@ def search(self, query_string, sort_by=None, start_offset=0, end_offset=None,
379379
narrow_searcher = self.index.searcher()
380380

381381
for nq in narrow_queries:
382-
recent_narrowed_results = narrow_searcher.search(self.parser.parse(force_text(nq)))
382+
recent_narrowed_results = narrow_searcher.search(self.parser.parse(force_text(nq)),
383+
limit=None)
383384

384385
if len(recent_narrowed_results) <= 0:
385386
return {
@@ -507,7 +508,8 @@ def more_like_this(self, model_instance, additional_query_string=None,
507508
narrow_searcher = self.index.searcher()
508509

509510
for nq in narrow_queries:
510-
recent_narrowed_results = narrow_searcher.search(self.parser.parse(force_text(nq)))
511+
recent_narrowed_results = narrow_searcher.search(self.parser.parse(force_text(nq)),
512+
limit=None)
511513

512514
if len(recent_narrowed_results) <= 0:
513515
return {

tests/whoosh_tests/tests/test_whoosh_backend.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -814,9 +814,6 @@ def tearDown(self):
814814
connections['default']._index = self.old_ui
815815
super(LiveWhooshMultiSearchQuerySetTestCase, self).tearDown()
816816

817-
# We expect failure here because, despite not changing the code, Whoosh
818-
# 2.5.1 returns incorrect counts/results. Huzzah.
819-
@unittest.expectedFailure
820817
def test_searchquerysets_with_models(self):
821818
sqs = self.sqs.all()
822819
self.assertEqual(sqs.query.build_query(), u'*')

0 commit comments

Comments
 (0)