Example usage for org.apache.lucene.search IndexSearcher setQueryCachingPolicy

List of usage examples for org.apache.lucene.search IndexSearcher setQueryCachingPolicy

Introduction

In this page you can find the example usage for org.apache.lucene.search IndexSearcher setQueryCachingPolicy.

Prototype

public void setQueryCachingPolicy(QueryCachingPolicy queryCachingPolicy) 

Source Link

Document

Set the QueryCachingPolicy to use for query caching.

Usage

From source file:org.elasticsearch.xpack.core.security.authz.accesscontrol.SecurityIndexSearcherWrapper.java

License:Open Source License

@Override
protected IndexSearcher wrap(IndexSearcher searcher) throws EngineException {
    if (licenseState.isSecurityEnabled() == false
            || licenseState.isDocumentAndFieldLevelSecurityAllowed() == false) {
        return searcher;
    }/*ww w  .j a  v  a 2s  . c om*/

    final DirectoryReader directoryReader = (DirectoryReader) searcher.getIndexReader();
    if (directoryReader instanceof DocumentSubsetDirectoryReader) {
        // The reasons why we return a custom searcher:
        // 1) in the case the role query is sparse then large part of the main query can be skipped
        // 2) If the role query doesn't match with any docs in a segment, that a segment can be skipped
        IndexSearcher indexSearcher = new IndexSearcherWrapper((DocumentSubsetDirectoryReader) directoryReader);
        indexSearcher.setQueryCache(indexSearcher.getQueryCache());
        indexSearcher.setQueryCachingPolicy(indexSearcher.getQueryCachingPolicy());
        indexSearcher.setSimilarity(indexSearcher.getSimilarity(true));
        return indexSearcher;
    }
    return searcher;
}