类org.apache.lucene.index.FilterDirectoryReader源码实例Demo

下面列出了怎么用org.apache.lucene.index.FilterDirectoryReader的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: crate   文件: MockEngineSupport.java
public MockEngineSupport(EngineConfig config, Class<? extends FilterDirectoryReader> wrapper) {
    Settings settings = config.getIndexSettings().getSettings();
    shardId = config.getShardId();
    filterCache = config.getQueryCache();
    filterCachingPolicy = config.getQueryCachingPolicy();
    final long seed =  config.getIndexSettings().getValue(ESIntegTestCase.INDEX_TEST_SEED_SETTING);
    Random random = new Random(seed);
    final double ratio = WRAP_READER_RATIO.get(settings);
    boolean wrapReader = random.nextDouble() < ratio;
    if (logger.isTraceEnabled()) {
        logger.trace("Using [{}] for shard [{}] seed: [{}] wrapReader: [{}]", this.getClass().getName(), shardId, seed, wrapReader);
    }
    mockContext = new MockContext(random, wrapReader, wrapper, settings);
    this.inFlightSearchers = new InFlightSearchers();
    LuceneTestCase.closeAfterSuite(inFlightSearchers); // only one suite closeable per Engine
    this.disableFlushOnClose = DISABLE_FLUSH_ON_CLOSE.get(settings);
}
 
源代码2 项目: lucene-solr   文件: TestSearcherManager.java
public MyFilterDirectoryReader(DirectoryReader in) throws IOException {
  super(in, 
        new FilterDirectoryReader.SubReaderWrapper() {
          @Override
          public LeafReader wrap(LeafReader reader) {
            FilterLeafReader wrapped = new MyFilterLeafReader(reader);
            assertEquals(reader, wrapped.getDelegate());
            return wrapped;
          }
        });
}
 
源代码3 项目: lucene-solr   文件: TestSearcherManager.java
public void testCustomDirectoryReader() throws Exception {
  Directory dir = newDirectory();
  RandomIndexWriter w = new RandomIndexWriter(random(), dir);
  DirectoryReader nrtReader = w.getReader();

  FilterDirectoryReader reader = new MyFilterDirectoryReader(nrtReader);
  assertEquals(nrtReader, reader.getDelegate());
  assertEquals(FilterDirectoryReader.unwrap(nrtReader), FilterDirectoryReader.unwrap(reader));

  SearcherManager mgr = new SearcherManager(reader, null);
  for(int i=0;i<10;i++) {
    w.addDocument(new Document());
    mgr.maybeRefresh();
    IndexSearcher s = mgr.acquire();
    try {
      assertTrue(s.getIndexReader() instanceof MyFilterDirectoryReader);
      for (LeafReaderContext ctx : s.getIndexReader().leaves()) {
        assertTrue(ctx.reader() instanceof MyFilterLeafReader);
      }
    } finally {
      mgr.release(s);
    }
  }
  mgr.close();
  w.close();
  dir.close();
}
 
源代码4 项目: lucene-solr   文件: UninvertingReader.java
public UninvertingDirectoryReader(DirectoryReader in, final Function<String, Type> mapper) throws IOException {
  super(in, new FilterDirectoryReader.SubReaderWrapper() {
    @Override
    public LeafReader wrap(LeafReader reader) {
      return UninvertingReader.wrap(reader, mapper);
    }
  });
  this.mapper = mapper;
}
 
源代码5 项目: crate   文件: ElasticsearchDirectoryReader.java
/**
 * Tries to unwrap the given reader until the first
 * {@link ElasticsearchDirectoryReader} instance is found or {@code null}
 * if no instance is found.
 */
public static ElasticsearchDirectoryReader getElasticsearchDirectoryReader(DirectoryReader reader) {
    if (reader instanceof FilterDirectoryReader) {
        if (reader instanceof ElasticsearchDirectoryReader) {
            return (ElasticsearchDirectoryReader) reader;
        } else {
            // We need to use FilterDirectoryReader#getDelegate and not FilterDirectoryReader#unwrap, because
            // If there are multiple levels of filtered leaf readers then with the unwrap() method it immediately
            // returns the most inner leaf reader and thus skipping of over any other filtered leaf reader that
            // may be instance of ElasticsearchLeafReader. This can cause us to miss the shardId.
            return getElasticsearchDirectoryReader(((FilterDirectoryReader) reader).getDelegate());
        }
    }
    return null;
}
 
源代码6 项目: crate   文件: FieldMaskingReader.java
public FieldMaskingReader(String field, DirectoryReader in) throws IOException {
    super(in, new FilterDirectoryReader.SubReaderWrapper() {
        @Override
        public LeafReader wrap(LeafReader reader) {
            return new FilterLeafReader(new FieldFilterLeafReader(reader, Collections.singleton(field), true)) {

                // FieldFilterLeafReader does not forward cache helpers
                // since it considers it is illegal because of the fact
                // that it changes the content of the index. However we
                // want this behavior for tests, and security plugins
                // are careful to only use the cache when it's valid

                @Override
                public CacheHelper getReaderCacheHelper() {
                    return reader.getReaderCacheHelper();
                }

                @Override
                public CacheHelper getCoreCacheHelper() {
                    return reader.getCoreCacheHelper();
                }
            };
        }
    });
    this.field = field;

}
 
源代码7 项目: crate   文件: ElasticsearchDirectoryReader.java
private ElasticsearchDirectoryReader(DirectoryReader in, FilterDirectoryReader.SubReaderWrapper wrapper,
        ShardId shardId) throws IOException {
    super(in, wrapper);
    this.wrapper = wrapper;
    this.shardId = shardId;
}
 
源代码8 项目: crate   文件: MockEngineFactoryPlugin.java
protected Class<? extends FilterDirectoryReader> getReaderWrapperClass() {
    return AssertingDirectoryReader.class;
}
 
源代码9 项目: crate   文件: MockInternalEngine.java
MockInternalEngine(EngineConfig config,  Class<? extends FilterDirectoryReader> wrapper) throws EngineException {
    super(config);
    wrapperClass = wrapper;

}
 
源代码10 项目: crate   文件: MockEngineFactory.java
public MockEngineFactory(Class<? extends FilterDirectoryReader> wrapper) {
    this.wrapper = wrapper;
}
 
源代码11 项目: crate   文件: MockEngineSupport.java
public MockContext(Random random, boolean wrapReader, Class<? extends FilterDirectoryReader> wrapper, Settings indexSettings) {
    this.random = random;
    this.wrapReader = wrapReader;
    this.wrapper = wrapper;
    this.indexSettings = indexSettings;
}
 
 类所在包
 类方法
 同包方法