Example usage for org.apache.lucene.facet.taxonomy SearcherTaxonomyManager SearcherTaxonomyManager

List of usage examples for org.apache.lucene.facet.taxonomy SearcherTaxonomyManager SearcherTaxonomyManager

Introduction

In this page you can find the example usage for org.apache.lucene.facet.taxonomy SearcherTaxonomyManager SearcherTaxonomyManager.

Prototype

public SearcherTaxonomyManager(IndexWriter writer, boolean applyAllDeletes, SearcherFactory searcherFactory,
        DirectoryTaxonomyWriter taxoWriter) throws IOException 

Source Link

Document

Expert: creates near-real-time searcher and taxonomy reader from the corresponding writers, controlling whether deletes should be applied.

Usage

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();
    }
}