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()
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)
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 _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
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