def search(query, start, end): # search dbindex = cfg.getPath('archiveindex') searcher = lucene_logic.Searcher(pathname=dbindex) query = query.rewrite(searcher.reader.reader) hits = searcher.search(query) hitList = sortHits(hits, searcher.reader.maxDoc()+2000) # prepare for highlighter formatter = SimpleHTMLFormatter("<span class='highlight'>", "</span>") highlighter = Highlighter( formatter, QueryScorer(query)) highlighter.setTextFragmenter(SimpleFragmenter(50)) analyzer = StandardAnalyzer() # build a MatchItem list result = [] for i in xrange(start,end): if i >= hits.length(): break item = MatchItem(hitList, i) item.highlight(analyzer, highlighter) #item.explaination = str(searcher.explain(query, item.id)) result.append(item) searcher.close() return hits.length(), result
def _findHighestId(self): """ Scan logs dir for files for the highest id. 0 if no file found. """ logdir = cfg.getPath('logs') files = filter(self.log_pattern.match, self._listdir(logdir)) if not files: return 0 files = [f.rjust(14) for f in files] top = max(files) return int(top.split('.')[0])
def main(): import PyLucene init(CONFIG_FILENAME) setup() # log some system info platform = sys.platform if 'win32' in sys.platform: platform += str(sys.getwindowsversion()) log.info('-'*70) log.info('%s %s', config.APPLICATION_NAME, cfg.get('version','number')) log.info('Python %s', sys.version) log.info(' Platform %s', platform) log.info(' pwd: %s, defaultencoding: %s', os.getcwd(), sys.getdefaultencoding()) log.info('PyLucene %s Lucene %s', PyLucene.VERSION, PyLucene.LUCENE_VERSION) # show index version import lucene_logic dbindex = cfg.getPath('archiveindex') reader = lucene_logic.Reader(pathname=dbindex) version = reader.getVersion() log.info(' Index version %s', version) proxyThread = threading.Thread(target=proxyMain, name='proxy') #proxyThread.setDaemon(True) proxyThread.start() adminThread = PyLucene.Thread(runnable(adminMain)) #adminThread.setDaemon(True) adminThread.start() # time.sleep(3) indexThread = PyLucene.Thread(runnable(indexMain)) indexThread.start() # main thread sleep _shutdownEvent.wait() # shutdown log.fatal('System shutting down.') indexThread.join() log.fatal('indexThread terminated.') adminThread.join() log.fatal('adminThread terminated.') proxyThread.join() log.fatal('proxyThread terminated.') log.fatal('End of main thread.') #if __name__ == '__main__': # main()
def setupLogging(): filename = os.path.join(cfg.getPath('logs'), 'system.log') hdlr = logging.handlers.RotatingFileHandler(filename, 'a', 1100000, 4) formatter = logging.Formatter('%(asctime)s %(name)-10s - %(message)s') hdlr.setFormatter(formatter) rootlog = logging.getLogger() rootlog.addHandler(hdlr) rootlog.removeHandler(config.bootstrapHdlr) rootlog.setLevel(logging.DEBUG) # redirect stdout and stderr to log stdoutFp = LogFileObj(logging.getLogger('stdout')) stderrFp = LogFileObj(logging.getLogger('stderr')) sys.stdout = stdoutFp sys.stderr = stderrFp print 'stdout ready' print >>sys.stderr, 'stderr ready'
def _getMsgLogPath(id): return os.path.join( cfg.getPath('logs'), id+'.qlog')