fnp
/
wolnelektury.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Make club app a little more manageable.
[wolnelektury.git]
/
src
/
search
/
index.py
diff --git
a/src/search/index.py
b/src/search/index.py
index
7120893
..
e471cd6
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
@@
-389,16
+390,16
@@
class Index(SolrIndex):
return
def fix_format(text):
return
def fix_format(text):
- # separator = [
u" ", u"\t", u".", u";", u
","]
+ # separator = [
" ", "\t", ".", ";",
","]
if isinstance(text, list):
# need to join it first
text = filter(lambda s: s is not None, content)
if isinstance(text, list):
# need to join it first
text = filter(lambda s: s is not None, content)
- text =
u
' '.join(text)
+ text = ' '.join(text)
# for i in range(len(text)):
# if i > 0:
# if text[i][0] not in separator\
# and text[i - 1][-1] not in separator:
# for i in range(len(text)):
# if i > 0:
# if text[i][0] not in separator\
# and text[i - 1][-1] not in separator:
- # text.insert(i,
u
" ")
+ # text.insert(i, " ")
return re.sub("(?m)/$", "", text)
return re.sub("(?m)/$", "", text)
@@
-462,7
+463,7
@@
class Index(SolrIndex):
elif end is not None and footnote is not [] and end.tag in self.footnote_tags:
handle_text.pop()
doc = add_part(snippets, header_index=position, header_type=header.tag,
elif end is not None and footnote is not [] and end.tag in self.footnote_tags:
handle_text.pop()
doc = add_part(snippets, header_index=position, header_type=header.tag,
- text=
u
''.join(footnote),
+ text=''.join(footnote),
is_footnote=True)
self.index.add(doc)
footnote = []
is_footnote=True)
self.index.add(doc)
footnote = []
@@
-612,7
+613,7
@@
class SearchResult(object):
return result
def __str__(self):
return result
def __str__(self):
- return
u
"<SR id=%d %d(%d) hits score=%f %d snippets>" % \
+ return "<SR id=%d %d(%d) hits score=%f %d snippets>" % \
(self.book_id, len(self._hits),
len(self._processed_hits) if self._processed_hits else -1,
self._score, len(self.snippets))
(self.book_id, len(self._hits),
len(self._processed_hits) if self._processed_hits else -1,
self._score, len(self.snippets))
@@
-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)
@@
-794,7
+802,7
@@
class PictureResult(object):
self._hits.append(hit)
def __str__(self):
self._hits.append(hit)
def __str__(self):
- return
u
"<PR id=%d score=%f >" % (self.picture_id, self._score)
+ return "<PR id=%d score=%f >" % (self.picture_id, self._score)
def __repr__(self):
return str(self)
def __repr__(self):
return str(self)