def _maybeReopen(self):
     if len(self._latestModifications) > 10000:
         newReader = DirectoryReader.openIfChanged(self._reader, self._writer, True)
         if not newReader is None:
             self._reader.close()
             self._reader = newReader
             self._searcher = IndexSearcher(self._reader)
             self._latestModifications.clear()
Example #2
0
 def _maybeReopen(self):
     if len(self._latestModifications) > 10000:
         newReader = DirectoryReader.openIfChanged(self._reader,
                                                   self._writer, True)
         if not newReader is None:
             self._reader.close()
             self._reader = newReader
             self._searcher = IndexSearcher(self._reader)
             self._latestModifications.clear()
Example #3
0
 def commit(self):
     self.writer.commit()
     # make IndexReader reflect index updates
     # TODO: try IndexReader.isCurrent()
     new_reader = DirectoryReader.openIfChanged(self.reader)
     if new_reader is not None:
         self.reader.close()  # note: not thread safe, may need to revisit
         self.reader = new_reader
         self.searcher = IndexSearcher(self.reader)
Example #4
0
 def refresh(self):
     """Refresh the searsher, if index is changed."""
     nireader = DirectoryReader.openIfChanged(self.reader)
     if nireader:
         self.reader.close()
         self.reader = nireader
         self.isearcher = IndexSearcher(self.reader)
         logger.debug('Index file changed, freshed')
     else:
         logger.debug('Index file did not change.')
 def reopen(self):
     reader = DirectoryReader.openIfChanged(self._reader)
     if reader is None:
         return
     self._reader.close()
     self._reader = reader
     self._reopenSearcher = True
     taxoReader = DirectoryTaxonomyReader.openIfChanged(self.taxoReader)
     if taxoReader is None:
         return
     self.taxoReader.close()
     self.taxoReader = taxoReader
 def reopen(self):
     reader = DirectoryReader.openIfChanged(self._reader)
     if reader is None:
         return
     self._reader.close()
     self._reader = reader
     self._reopenSearcher = True
     taxoReader = DirectoryTaxonomyReader.openIfChanged(self.taxoReader)
     if taxoReader is None:
         return
     self.taxoReader.close()
     self.taxoReader = taxoReader
Example #7
0
 def _getSearcher(self, identifier=None):
     modifications = len(self._latestModifications)
     if modifications == 0:
         return self._searcher
     if identifier and str(identifier) not in self._latestModifications and modifications < _MAX_MODIFICATIONS:
         return self._searcher
     newreader = DirectoryReader.openIfChanged(self._reader, self._writer, True)
     if newreader:
         self._reader.close()
         self._reader = newreader
         self._searcher = IndexSearcher(newreader)
     self._latestModifications.clear()
     return self._searcher
Example #8
0
 def _getSearcher(self, identifier=None):
     modifications = len(self._latestModifications)
     if modifications == 0:
         return self._searcher
     if identifier and str(
             identifier
     ) not in self._latestModifications and modifications < _MAX_MODIFICATIONS:
         return self._searcher
     newreader = DirectoryReader.openIfChanged(self._reader, self._writer,
                                               True)
     if newreader:
         self._reader.close()
         self._reader = newreader
         self._searcher = IndexSearcher(newreader)
     self._latestModifications.clear()
     return self._searcher