fnp
/
wolnelektury.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update librarian
[wolnelektury.git]
/
src
/
search
/
index.py
diff --git
a/src/search/index.py
b/src/search/index.py
index
c84841b
..
1cac82e
100644
(file)
--- 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']
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):
return doc
def give_me_utf8(s):
@@
-515,8
+514,7
@@
class Index(SolrIndex):
class SearchResult(object):
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
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)
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,
return [SearchResult(found, how_found=u'search_phrase') for found in res]
def search_some(self, searched, fields, book=True,
@@
-827,8
+825,10
@@
class Search(SolrIndex):
idx += 1
except IOError, e:
idx += 1
except IOError, e:
- book = catalogue.models.Book.objects.get(id=book_id)
- if not book.children.exists():
+ book = catalogue.models.Book.objects.filter(id=book_id)
+ if not book:
+ log.error("Book does not exist for book id = %d" % book_id)
+ elif not book.get().children.exists():
log.error("Cannot open snippet file for book id = %d [rev=%s], %s" % (book_id, revision, e))
return []
finally:
log.error("Cannot open snippet file for book id = %d [rev=%s], %s" % (book_id, revision, e))
return []
finally:
@@
-913,8
+913,10
@@
class Search(SolrIndex):
query = query.strip()
if prefix:
q |= self.index.Q(title=query + "*")
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')
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])
qu = self.index.query(q)
only_books = self.index.Q(is_book=True)
return self.search_books(qu, [only_books])