search too many files fix?
[wolnelektury.git] / apps / search / index.py
index ead10b5..b3e9322 100644 (file)
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 
 from django.conf import settings
-from lucene import SimpleFSDirectory, IndexWriter, IndexWriterConfig, CheckIndex, \
+from lucene import SimpleFSDirectory, NIOFSDirectory, IndexWriter, IndexWriterConfig, CheckIndex, \
     File, Field, Integer, \
     NumericField, Version, Document, JavaError, IndexSearcher, \
     QueryParser, PerFieldAnalyzerWrapper, \
@@ -82,7 +82,7 @@ class IndexStore(object):
     """
     def __init__(self):
         self.make_index_dir()
-        self.store = SimpleFSDirectory(File(settings.SEARCH_INDEX))
+        self.store = NIOFSDirectory(File(settings.SEARCH_INDEX))
 
     def make_index_dir(self):
         try:
@@ -214,7 +214,7 @@ class Index(BaseIndex):
         q = NumericRangeQuery.newIntRange("tag_id", 0, Integer.MAX_VALUE, True, True)
         self.index.deleteDocuments(q)
 
-        for tag in catalogue.models.Tag.objects.all():
+        for tag in catalogue.models.Tag.objects.exclude(category='set'):
             doc = Document()
             doc.add(NumericField("tag_id", Field.Store.YES, True).setIntValue(int(tag.id)))
             doc.add(Field("tag_name", tag.name, Field.Store.NO, Field.Index.ANALYZED))
@@ -650,9 +650,10 @@ class SearchResult(object):
         self.book_id = int(stored.get("book_id"))
 
         pd = stored.get("published_date")
-        if pd is None:
-            pd = 0
-        self.published_date = int(pd)
+        try:
+            self.published_date = int(pd)
+        except ValueError:
+            self.published_date = 0
 
         header_type = stored.get("header_type")
         # we have a content hit in some header of fragment