List of usage examples for org.apache.lucene.search IndexSearcher setQueryCachingPolicy
public void setQueryCachingPolicy(QueryCachingPolicy queryCachingPolicy)
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; }