X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/0f5a920e2012813330cf7ffe0c559cc48222810c..a87d0e99a355a5f36d7704b5cf1dc2d3f814b910:/src/search/index.py diff --git a/src/search/index.py b/src/search/index.py index 7dfe6ef5a..1cac82ef6 100644 --- a/src/search/index.py +++ b/src/search/index.py @@ -417,9 +417,8 @@ class Index(SolrIndex): if 'themes' in fields: doc['themes'] = fields['themes'] - doc['uid'] = "part%s%s%s" % (doc['header_index'], - doc['header_span'], - doc.get('fragment_anchor', '')) + doc['uid'] = "part%s-%s-%s-%s" % ( + book.id, doc['header_index'], doc['header_span'], doc.get('fragment_anchor', '')) return doc def give_me_utf8(s): @@ -515,8 +514,7 @@ class Index(SolrIndex): class SearchResult(object): - def __init__(self, doc, how_found=None, query=None, query_terms=None): - # self.search = search + def __init__(self, doc, how_found=None, query_terms=None): self.boost = 1.0 self._hits = [] self._processed_hits = None # processed hits @@ -744,7 +742,7 @@ class Search(SolrIndex): q = self.index.query(**{field: searched}) q = self.apply_filters(q, filters).field_limit(score=True, all_fields=True) - res = q.execute() + res = q.paginate(rows=100).execute() return [SearchResult(found, how_found=u'search_phrase') for found in res] def search_some(self, searched, fields, book=True, @@ -915,8 +913,10 @@ class Search(SolrIndex): 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])