From 442e7667f2d3ae96b873dacc1c7f980765ecc57a Mon Sep 17 00:00:00 2001 From: Jan Szejko Date: Fri, 16 Feb 2018 17:35:28 +0100 Subject: [PATCH 1/1] remove unused search methods --- src/search/index.py | 94 --------------------------------------- src/search/mock_search.py | 9 ---- src/search/tests/index.py | 11 ----- 3 files changed, 114 deletions(-) diff --git a/src/search/index.py b/src/search/index.py index bfb1739b1..4c278eab5 100644 --- a/src/search/index.py +++ b/src/search/index.py @@ -790,100 +790,6 @@ class Search(SolrIndex): return snips - def hint_tags(self, query, pdcounter=True, prefix=True): - """ - Return auto-complete hints for tags - using prefix search. - """ - q = self.index.Q() - query = query.strip() - for field in ['tag_name', 'tag_name_pl']: - if prefix: - q |= self.index.Q(**{field: query + "*"}) - else: - q |= self.make_term_query(query, field=field) - qu = self.index.query(q) - - return self.search_tags(qu, pdcounter=pdcounter) - - def search_tags(self, query, filters=None, pdcounter=False): - """ - Search for Tag objects using query. - """ - if not filters: - filters = [] - if not pdcounter: - filters.append(~self.index.Q(is_pdcounter=True)) - res = self.apply_filters(query, filters).execute() - - tags = [] - pd_tags = [] - - for doc in res: - is_pdcounter = doc.get('is_pdcounter', False) - category = doc.get('tag_category') - try: - if is_pdcounter: - if category == 'pd_author': - tag = PDCounterAuthor.objects.get(id=doc.get('tag_id')) - else: # category == 'pd_book': - tag = PDCounterBook.objects.get(id=doc.get('tag_id')) - tag.category = 'pd_book' # make it look more lik a tag. - pd_tags.append(tag) - else: - tag = catalogue.models.Tag.objects.get(id=doc.get("tag_id")) - tags.append(tag) - - except catalogue.models.Tag.DoesNotExist: - pass - except PDCounterAuthor.DoesNotExist: - pass - except PDCounterBook.DoesNotExist: - pass - - tags_slugs = set(map(lambda t: t.slug, tags)) - tags = tags + filter(lambda t: t.slug not in tags_slugs, pd_tags) - - log.debug('search_tags: %s' % tags) - - return tags - - def hint_books(self, query, prefix=True): - """ - Returns auto-complete hints for book titles - Because we do not index 'pseudo' title-tags. - Prefix search. - """ - q = self.index.Q() - query = query.strip() - if prefix: - q |= self.index.Q(title=query + "*") - q |= self.index.Q(title_orig=query + "*") - else: - q |= self.make_term_query(query, field='title') - q |= self.make_term_query(query, field='title_orig') - qu = self.index.query(q) - only_books = self.index.Q(is_book=True) - return self.search_books(qu, [only_books]) - - def search_books(self, query, filters=None, max_results=10): - """ - Searches for Book objects using query - """ - bks = [] - bks_found = set() - query = query.query(is_book=True) - res = self.apply_filters(query, filters).field_limit(['book_id']) - for r in res: - try: - bid = r['book_id'] - if bid not in bks_found: - bks.append(catalogue.models.Book.objects.get(id=bid)) - bks_found.add(bid) - except catalogue.models.Book.DoesNotExist: - pass - return bks - @staticmethod def apply_filters(query, filters): """ diff --git a/src/search/mock_search.py b/src/search/mock_search.py index 3bd7b9371..344e79f72 100644 --- a/src/search/mock_search.py +++ b/src/search/mock_search.py @@ -36,15 +36,6 @@ class Search(Mock): results.append(res) return results - # WTF - def search_books(self, query, filters=None, max_results=10): - return self._find_some_books(max_results=max_results) - def search_everywhere(self, searched, query_terms=None): return [] - def hint_tags(self, query, pdcounter=True, prefix=True): - return Tag.objects.exclude(category='set').order_by('?')[:randint(1, 10)] - - def hint_books(self, prefix): - return Book.objects.order_by('?')[:randint(1, 10)] diff --git a/src/search/tests/index.py b/src/search/tests/index.py index d11ff7b06..2af1d3030 100644 --- a/src/search/tests/index.py +++ b/src/search/tests/index.py @@ -30,17 +30,6 @@ class BookSearchTests(WLTestCase): self.do_anusie = Book.from_xml_file( get_fixture('fraszka-do-anusie.xml', catalogue)) - def test_search_perfect_book_author(self): - books = self.search.search_books(self.search.index.query(authors=u"sęp szarzyński")) - assert len(books) == 1 - assert books[0].id == self.do_anusie.id - - # here we lack slop functionality as well - def test_search_perfect_book_title(self): - books = self.search.search_books(self.search.index.query(title=u"fraszka do anusie")) - assert len(books) == 1 - assert books[0].id == self.do_anusie.id - # TODO: Add slop option to sunburnt # def test_search_perfect_parts(self): # books = self.search.search_phrase(u"Jakoż hamować") -- 2.20.1