List of usage examples for org.apache.lucene.facet.taxonomy SearcherTaxonomyManager SearcherTaxonomyManager
public SearcherTaxonomyManager(IndexWriter writer, boolean applyAllDeletes, SearcherFactory searcherFactory, DirectoryTaxonomyWriter taxoWriter) throws IOException
From source file:com.qwazr.search.bench.LuceneWithTaxonomyIndex.java
License:Apache License
public LuceneWithTaxonomyIndex(final Path rootDirectory, final String schemaName, final String indexName, final ExecutorService executorService, final double ramBufferSize, final boolean useCompoundFile) throws IOException { super(rootDirectory, schemaName, indexName, ramBufferSize, useCompoundFile); this.taxonomyDirectory = FSDirectory.open(indexDirectory.resolve("taxonomy")); this.taxonomyWriter = new IndexAndTaxonomyRevision.SnapshotDirectoryTaxonomyWriter(taxonomyDirectory); searcherTaxonomyManager = new SearcherTaxonomyManager(this.indexWriter, true, executorService == null ? new SearcherFactory() : new MultiThreadSearcherFactory(executorService), this.taxonomyWriter); }
From source file:com.xiaomi.linden.core.search.LindenNRTSearcherManager.java
License:Apache License
public LindenNRTSearcherManager(LindenConfig config, TrackingIndexWriter trackingIndexWriter, DirectoryTaxonomyWriter taxonomyWriter) throws IOException { SearcherFactory searcherFactory = null; if (config.isEnableParallelSearch()) { executor = Executors.newFixedThreadPool(config.getIndexSearcherParallelThreadNum()); searcherFactory = new ParallelSearcherFactory(executor); }//from ww w. j a v a 2s.co m LOGGER.info("Parallel search enabled : {}", config.isEnableParallelSearch()); checkupThread = new Thread() { @Override public void run() { while (!Thread.currentThread().isInterrupted()) { try { Thread.sleep(30000); LOGGER.info("Index searcher parallel thread pool executor status:" + executor); } catch (InterruptedException e) { break; } catch (Exception e) { // do nothing } } } }; checkupThread.start(); if (taxonomyWriter != null) { indexSearcherReferenceManager = null; indexSearcherReopenThread = null; searcherAndTaxonomyReferenceManager = new SearcherTaxonomyManager(trackingIndexWriter.getIndexWriter(), true, searcherFactory, taxonomyWriter); searcherAndTaxonomyReopenThread = new ControlledRealTimeReopenThread<>(trackingIndexWriter, searcherAndTaxonomyReferenceManager, config.getIndexRefreshTime(), // when there is nobody waiting 0.1); // when there is someone waiting searcherAndTaxonomyReopenThread.start(); } else { indexSearcherReferenceManager = new SearcherManager(trackingIndexWriter.getIndexWriter(), true, searcherFactory); indexSearcherReopenThread = new ControlledRealTimeReopenThread<>(trackingIndexWriter, indexSearcherReferenceManager, config.getIndexRefreshTime(), // when there is nobody waiting 0.1); // when there is someone waiting searcherAndTaxonomyReferenceManager = null; searcherAndTaxonomyReopenThread = null; indexSearcherReopenThread.start(); } }