fnp
/
wolnelektury.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix
[wolnelektury.git]
/
src
/
search
/
index.py
diff --git
a/src/search/index.py
b/src/search/index.py
index
9784d49
..
4606f57
100644
(file)
--- a/
src/search/index.py
+++ b/
src/search/index.py
@@
-9,7
+9,6
@@
import os
import re
from django.conf import settings
from librarian import dcparser
import re
from django.conf import settings
from librarian import dcparser
-import librarian.meta.types.date
import librarian.meta.types.person
import librarian.meta.types.text
from librarian.parser import WLDocument
import librarian.meta.types.person
import librarian.meta.types.text
from librarian.parser import WLDocument
@@
-245,17
+244,18
@@
class Index(SolrIndex):
doc['parent_id'] = int(book.parent.id)
return doc
doc['parent_id'] = int(book.parent.id)
return doc
- def remove_book(self, book, remove_snippets=True):
+ def remove_book(self, book, remove_snippets=True
, legacy=True
):
"""Removes a book from search index.
book - Book instance."""
"""Removes a book from search index.
book - Book instance."""
- self.delete_query(self.index.Q(book_id=book.id))
+ if legacy:
+ self.delete_query(self.index.Q(book_id=book.id))
- if remove_snippets:
+
if remove_snippets:
snippets = Snippets(book.id)
snippets.remove()
self.remove_snippets(book)
snippets = Snippets(book.id)
snippets.remove()
self.remove_snippets(book)
- def index_book(self, book, book_info=None, overwrite=True):
+ def index_book(self, book, book_info=None, overwrite=True
, legacy=True
):
"""
Indexes the book.
Creates a lucene document for extracted metadata
"""
Indexes the book.
Creates a lucene document for extracted metadata
@@
-266,7
+266,7
@@
class Index(SolrIndex):
if overwrite:
# we don't remove snippets, since they might be still needed by
# threads using not reopened index
if overwrite:
# we don't remove snippets, since they might be still needed by
# threads using not reopened index
- self.remove_book(book, remove_snippets=False)
+ self.remove_book(book, remove_snippets=False
, legacy=legacy
)
book_doc = self.create_book_doc(book)
meta_fields = self.extract_metadata(book, book_info, dc_only=[
book_doc = self.create_book_doc(book)
meta_fields = self.extract_metadata(book, book_info, dc_only=[
@@
-279,7
+279,8
@@
class Index(SolrIndex):
book_doc[n] = f
book_doc['uid'] = "book%s" % book_doc['book_id']
book_doc[n] = f
book_doc['uid'] = "book%s" % book_doc['book_id']
- self.index.add(book_doc)
+ if legacy:
+ self.index.add(book_doc)
del book_doc
book_fields = {
'title': meta_fields['title'],
del book_doc
book_fields = {
'title': meta_fields['title'],
@@
-291,7
+292,7
@@
class Index(SolrIndex):
if tag_name in meta_fields:
book_fields[tag_name] = meta_fields[tag_name]
if tag_name in meta_fields:
book_fields[tag_name] = meta_fields[tag_name]
- self.index_content(book, book_fields=book_fields)
+ self.index_content(book, book_fields=book_fields
, legacy=legacy
)
master_tags = [
'opowiadanie',
master_tags = [
'opowiadanie',
@@
-348,9
+349,6
@@
class Index(SolrIndex):
else:
persons = ', '.join(map(str, p))
fields[field.name] = persons
else:
persons = ', '.join(map(str, p))
fields[field.name] = persons
- elif issubclass(type_indicator, librarian.meta.types.date.DateValue):
- dt = getattr(book_info, field.name)
- fields[field.name] = dt
# get published date
pd = None
# get published date
pd = None
@@
-382,7
+380,7
@@
class Index(SolrIndex):
if master.tag in self.master_tags:
return master
if master.tag in self.master_tags:
return master
- def index_content(self, book, book_fields):
+ def index_content(self, book, book_fields
, legacy=True
):
"""
Walks the book XML and extract content from it.
Adds parts for each header tag and for each fragment.
"""
Walks the book XML and extract content from it.
Adds parts for each header tag and for each fragment.
@@
-484,7
+482,8
@@
class Index(SolrIndex):
doc = add_part(snippets, header_index=position, header_type=header.tag,
text=''.join(footnote))
self.add_snippet(book, doc)
doc = add_part(snippets, header_index=position, header_type=header.tag,
text=''.join(footnote))
self.add_snippet(book, doc)
- self.index.add(doc)
+ if legacy:
+ self.index.add(doc)
footnote = []
# handle fragments and themes.
footnote = []
# handle fragments and themes.
@@
-520,7
+519,8
@@
class Index(SolrIndex):
themes=frag['themes'])
# Add searchable fragment
self.add_snippet(book, doc)
themes=frag['themes'])
# Add searchable fragment
self.add_snippet(book, doc)
- self.index.add(doc)
+ if legacy:
+ self.index.add(doc)
# Collect content.
# Collect content.
@@
-533,7
+533,8
@@
class Index(SolrIndex):
header_type=header.tag, text=fix_format(content))
self.add_snippet(book, doc)
header_type=header.tag, text=fix_format(content))
self.add_snippet(book, doc)
- self.index.add(doc)
+ if legacy:
+ self.index.add(doc)
finally:
snippets.close()
finally:
snippets.close()