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
7120893
..
bd31a2a
100644
(file)
--- a/
src/search/index.py
+++ b/
src/search/index.py
@@
-142,7
+142,8
@@
class Index(SolrIndex):
uids.add(res['uid'])
st += rows
if uids:
uids.add(res['uid'])
st += rows
if uids:
- self.index.delete(uids)
+ # FIXME: With Solr API change, this doesn't work.
+ #self.index.delete(uids)
return True
else:
return False
return True
else:
return False
@@
-634,7
+635,10
@@
class SearchResult(object):
def get_book(self):
if self._book is not None:
return self._book
def get_book(self):
if self._book is not None:
return self._book
- self._book = catalogue.models.Book.objects.get(id=self.book_id)
+ try:
+ self._book = catalogue.models.Book.objects.get(id=self.book_id)
+ except catalogue.models.Book.DoesNotExist:
+ self._book = None
return self._book
book = property(get_book)
return self._book
book = property(get_book)
@@
-746,13
+750,17
@@
class SearchResult(object):
books[r.book_id] = r
return books.values()
books[r.book_id] = r
return books.values()
+ def get_sort_key(self):
+ return (-self.score,
+ self.published_date,
+ self.book.sort_key_author if self.book else '',
+ self.book.sort_key if self.book else '')
+
def __lt__(self, other):
def __lt__(self, other):
- return (-self.score, self.published_date, self.book.sort_key_author, self.book.sort_key) > \
- (-other.score, other.published_date, other.book.sort_key_author, other.book.sort_key)
+ return self.get_sort_key() > other.get_sort_key()
def __eq__(self, other):
def __eq__(self, other):
- return (self.score, self.published_date, self.book.sort_key_author, self.book.sort_key) == \
- (other.score, other.published_date, other.book.sort_key_author, other.book.sort_key)
+ return self.get_sort_key() == other.get_sort_key()
def __len__(self):
return len(self.hits)
def __len__(self):
return len(self.hits)