More like this is working
This commit is contained in:
parent
ccde83ff8c
commit
585ccfdac7
|
@ -264,19 +264,18 @@ class XapianSearchBackendTestCase(TestCase):
|
|||
|
||||
self.assertEqual(self.sb.search(xapian.Query('XNAMEdavid'))['hits'], 0)
|
||||
self.assertEqual(self.sb.search(xapian.Query('XNAMEdavid'))['spelling_suggestion'], 'david1')
|
||||
|
||||
|
||||
# def test_more_like_this(self):
|
||||
# self.sb.update(self.msi, self.sample_objs)
|
||||
# self.assertEqual(len(self.xapian_search('')), 3)
|
||||
#
|
||||
# results = self.sb.more_like_this(self.sample_objs[0])
|
||||
# self.assertEqual(results['hits'], 2)
|
||||
# self.assertEqual([result.pk for result in results['results']], [3, 2])
|
||||
#
|
||||
# results = self.sb.more_like_this(self.sample_objs[0], additional_query_string='david3')
|
||||
# self.assertEqual(results['hits'], 1)
|
||||
# self.assertEqual([result.pk for result in results['results']], [3])
|
||||
def test_more_like_this(self):
|
||||
self.sb.update(self.msi, self.sample_objs)
|
||||
self.assertEqual(len(self.xapian_search('')), 3)
|
||||
|
||||
results = self.sb.more_like_this(self.sample_objs[0])
|
||||
self.assertEqual(results['hits'], 2)
|
||||
self.assertEqual([result.pk for result in results['results']], [3, 2])
|
||||
|
||||
results = self.sb.more_like_this(self.sample_objs[0], additional_query=xapian.Query('david3'))
|
||||
self.assertEqual(results['hits'], 1)
|
||||
self.assertEqual([result.pk for result in results['results']], [3])
|
||||
|
||||
# def test_order_by(self):
|
||||
# self.sb.update(self.msi, self.sample_objs)
|
||||
|
|
|
@ -325,7 +325,7 @@ class SearchBackend(BaseSearchBackend):
|
|||
'spelling_suggestion': spelling_suggestion,
|
||||
}
|
||||
|
||||
def more_like_this(self, model_instance, additional_query_string=None,
|
||||
def more_like_this(self, model_instance, additional_query=None,
|
||||
start_offset=0, end_offset=None,
|
||||
limit_to_registered_models=True, **kwargs):
|
||||
"""
|
||||
|
@ -336,8 +336,7 @@ class SearchBackend(BaseSearchBackend):
|
|||
retrieving similar documents.
|
||||
|
||||
Optional arguments:
|
||||
`additional_query_string` -- An additional query string to narrow
|
||||
results
|
||||
`additional_query` -- An additional query to narrow results
|
||||
`start_offset` -- The starting offset (default=0)
|
||||
`end_offset` -- The ending offset (default=None), if None, then all documents
|
||||
`limit_to_registered_models` -- Limit returned results to models registered in the current `SearchSite` (default = True)
|
||||
|
@ -379,19 +378,16 @@ class SearchBackend(BaseSearchBackend):
|
|||
query = xapian.Query(
|
||||
xapian.Query.OP_AND_NOT, [query, DOCUMENT_ID_TERM_PREFIX + get_identifier(model_instance)]
|
||||
)
|
||||
narrow_queries = None
|
||||
if limit_to_registered_models:
|
||||
registered_models = self.build_registered_models_list()
|
||||
|
||||
if len(registered_models) > 0:
|
||||
narrow_queries = set()
|
||||
narrow_queries.add(
|
||||
' '.join(['django_ct:%s' % model for model in registered_models])
|
||||
)
|
||||
if additional_query_string:
|
||||
additional_query, __unused__ = self._query(
|
||||
database, additional_query_string, narrow_queries
|
||||
)
|
||||
# narrow_queries = None
|
||||
# if limit_to_registered_models:
|
||||
# registered_models = self.build_registered_models_list()
|
||||
#
|
||||
# if len(registered_models) > 0:
|
||||
# narrow_queries = set()
|
||||
# narrow_queries.add(
|
||||
# ' '.join(['django_ct:%s' % model for model in registered_models])
|
||||
# )
|
||||
if additional_query:
|
||||
query = xapian.Query(
|
||||
xapian.Query.OP_AND, query, additional_query
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue