org.apache.lucene.util.BitSet.of()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(10.2k)|赞(0)|评价(0)|浏览(73)

本文整理了Java中org.apache.lucene.util.BitSet.of()方法的一些代码示例,展示了BitSet.of()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。BitSet.of()方法的具体详情如下:
包路径:org.apache.lucene.util.BitSet
类名称:BitSet
方法名:of

BitSet.of介绍

[英]Build a BitSet from the content of the provided DocIdSetIterator. NOTE: this will fully consume the DocIdSetIterator.
[中]

代码示例

代码示例来源:origin: org.elasticsearch/elasticsearch

private static BitSetProducer newParentDocBitSetProducer(Version indexVersionCreated) {
    return context -> {
        Query query = Queries.newNonNestedFilter(indexVersionCreated);
        final IndexReaderContext topLevelContext = ReaderUtil.getTopLevelContext(context);
        final IndexSearcher searcher = new IndexSearcher(topLevelContext);
        searcher.setQueryCache(null);
        final Weight weight = searcher.createNormalizedWeight(query, false);
        Scorer s = weight.scorer(context);
        return s == null ? null : BitSet.of(s.iterator(), context.reader().maxDoc());
      };
  }
}

代码示例来源:origin: org.elasticsearch/elasticsearch

bits = BitSet.of(docs, context.reader().maxDoc());

代码示例来源:origin: org.elasticsearch/elasticsearch

static CodecReader wrapReader(String recoverySourceField, CodecReader reader, Supplier<Query> retainSourceQuerySupplier)
  throws IOException {
  NumericDocValues recoverySource = reader.getNumericDocValues(recoverySourceField);
  if (recoverySource == null || recoverySource.nextDoc() == DocIdSetIterator.NO_MORE_DOCS) {
    return reader; // early terminate - nothing to do here since non of the docs has a recovery source anymore.
  }
  BooleanQuery.Builder builder = new BooleanQuery.Builder();
  builder.add(new DocValuesFieldExistsQuery(recoverySourceField), BooleanClause.Occur.FILTER);
  builder.add(retainSourceQuerySupplier.get(), BooleanClause.Occur.FILTER);
  IndexSearcher s = new IndexSearcher(reader);
  s.setQueryCache(null);
  Weight weight = s.createWeight(s.rewrite(builder.build()), false, 1.0f);
  Scorer scorer = weight.scorer(reader.getContext());
  if (scorer != null) {
    return new SourcePruningFilterCodecReader(recoverySourceField, reader, BitSet.of(scorer.iterator(), reader.maxDoc()));
  } else {
    return new SourcePruningFilterCodecReader(recoverySourceField, reader, null);
  }
}

代码示例来源:origin: org.elasticsearch/elasticsearch

bitSet = null;
} else {
  bitSet = BitSet.of(s.iterator(), context.reader().maxDoc());

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.elasticsearch

private static BitSetProducer newParentDocBitSetProducer(Version indexVersionCreated) {
    return context -> {
        Query query = Queries.newNonNestedFilter(indexVersionCreated);
        final IndexReaderContext topLevelContext = ReaderUtil.getTopLevelContext(context);
        final IndexSearcher searcher = new IndexSearcher(topLevelContext);
        searcher.setQueryCache(null);
        final Weight weight = searcher.createNormalizedWeight(query, false);
        Scorer s = weight.scorer(context);
        return s == null ? null : BitSet.of(s.iterator(), context.reader().maxDoc());
      };
  }
}

代码示例来源:origin: apache/servicemix-bundles

private static BitSetProducer newParentDocBitSetProducer(Version indexVersionCreated) {
    return context -> {
        Query query = Queries.newNonNestedFilter(indexVersionCreated);
        final IndexReaderContext topLevelContext = ReaderUtil.getTopLevelContext(context);
        final IndexSearcher searcher = new IndexSearcher(topLevelContext);
        searcher.setQueryCache(null);
        final Weight weight = searcher.createNormalizedWeight(query, false);
        Scorer s = weight.scorer(context);
        return s == null ? null : BitSet.of(s.iterator(), context.reader().maxDoc());
      };
  }
}

代码示例来源:origin: harbby/presto-connectors

@Override
public BitSet getBitSet(LeafReaderContext context) throws IOException {
 final LeafReader reader = context.reader();
 final Object key = reader.getCoreCacheKey();
 DocIdSet docIdSet = cache.get(key);
 if (docIdSet == null) {
  final IndexReaderContext topLevelContext = ReaderUtil.getTopLevelContext(context);
  final IndexSearcher searcher = new IndexSearcher(topLevelContext);
  searcher.setQueryCache(null);
  final Weight weight = searcher.createNormalizedWeight(query, false);
  final Scorer s = weight.scorer(context);
  if (s == null) {
   docIdSet = DocIdSet.EMPTY;
  } else {
   docIdSet = new BitDocIdSet(BitSet.of(s.iterator(), context.reader().maxDoc()));
  }
  cache.put(key, docIdSet);
 }
 return docIdSet == DocIdSet.EMPTY ? null : ((BitDocIdSet) docIdSet).bits();
}

代码示例来源:origin: org.elasticsearch.plugin/percolator-client

@Override
public BitSetProducer bitsetFilter(Query query) {
  return context -> {
    final IndexReaderContext topLevelContext = ReaderUtil.getTopLevelContext(context);
    final IndexSearcher searcher = new IndexSearcher(topLevelContext);
    searcher.setQueryCache(null);
    final Weight weight = searcher.createNormalizedWeight(query, false);
    final Scorer s = weight.scorer(context);
    if (s != null) {
      return new BitDocIdSet(BitSet.of(s.iterator(), context.reader().maxDoc())).bits();
    } else {
      return null;
    }
  };
}

代码示例来源:origin: com.strapdata.elasticsearch/elasticsearch

bits = BitSet.of(docs, context.reader().maxDoc());

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.elasticsearch

bits = BitSet.of(docs, context.reader().maxDoc());

代码示例来源:origin: org.codelibs/elasticsearch-querybuilders

bits = BitSet.of(docs, context.reader().maxDoc());

代码示例来源:origin: org.codelibs.elasticsearch.module/percolator

@Override
public BitSetProducer bitsetFilter(Query query) {
  return context -> {
    final IndexReaderContext topLevelContext = ReaderUtil.getTopLevelContext(context);
    final IndexSearcher searcher = new IndexSearcher(topLevelContext);
    searcher.setQueryCache(null);
    final Weight weight = searcher.createNormalizedWeight(query, false);
    final Scorer s = weight.scorer(context);
    if (s != null) {
      return new BitDocIdSet(BitSet.of(s.iterator(), context.reader().maxDoc())).bits();
    } else {
      return null;
    }
  };
}

代码示例来源:origin: harbby/presto-connectors

throw new IllegalStateException("LeafReader " + context.reader() + " contains no parents!");
parentBits = BitSet.of(parents.iterator(), context.reader().maxDoc());
parentLeafComparators = new LeafFieldComparator[parentComparators.length];
for (int i = 0; i < parentComparators.length; i++) {

代码示例来源:origin: harbby/presto-connectors

@Override
  public Value call() throws Exception {
    final IndexReaderContext topLevelContext = ReaderUtil.getTopLevelContext(context);
    final IndexSearcher searcher = new IndexSearcher(topLevelContext);
    searcher.setQueryCache(null);
    final Weight weight = searcher.createNormalizedWeight(query, false);
    final Scorer s = weight.scorer(context);
    final BitSet bitSet;
    if (s == null) {
      bitSet = null;
    } else {
      bitSet = BitSet.of(s.iterator(), context.reader().maxDoc());
    }
    Value value = new Value(bitSet, shardId);
    listener.onCache(shardId, value.bitset);
    return value;
  }
}).bitset;

代码示例来源:origin: org.elasticsearch.plugin/percolator-client

Scorer s = weight.scorer(percolatorIndexSearcher.getIndexReader().leaves().get(0));
int memoryIndexMaxDoc = percolatorIndexSearcher.getIndexReader().maxDoc();
BitSet rootDocs = BitSet.of(s.iterator(), memoryIndexMaxDoc);
int[] rootDocsBySlot = null;
boolean hasNestedDocs = rootDocs.cardinality() != percolatorIndexSearcher.getIndexReader().numDocs();

代码示例来源:origin: apache/servicemix-bundles

static CodecReader wrapReader(String recoverySourceField, CodecReader reader, Supplier<Query> retainSourceQuerySupplier)
  throws IOException {
  NumericDocValues recoverySource = reader.getNumericDocValues(recoverySourceField);
  if (recoverySource == null || recoverySource.nextDoc() == DocIdSetIterator.NO_MORE_DOCS) {
    return reader; // early terminate - nothing to do here since non of the docs has a recovery source anymore.
  }
  BooleanQuery.Builder builder = new BooleanQuery.Builder();
  builder.add(new DocValuesFieldExistsQuery(recoverySourceField), BooleanClause.Occur.FILTER);
  builder.add(retainSourceQuerySupplier.get(), BooleanClause.Occur.FILTER);
  IndexSearcher s = new IndexSearcher(reader);
  s.setQueryCache(null);
  Weight weight = s.createWeight(s.rewrite(builder.build()), false, 1.0f);
  Scorer scorer = weight.scorer(reader.getContext());
  if (scorer != null) {
    return new SourcePruningFilterCodecReader(recoverySourceField, reader, BitSet.of(scorer.iterator(), reader.maxDoc()));
  } else {
    return new SourcePruningFilterCodecReader(recoverySourceField, reader, null);
  }
}

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.elasticsearch

static CodecReader wrapReader(String recoverySourceField, CodecReader reader, Supplier<Query> retainSourceQuerySupplier)
  throws IOException {
  NumericDocValues recoverySource = reader.getNumericDocValues(recoverySourceField);
  if (recoverySource == null || recoverySource.nextDoc() == DocIdSetIterator.NO_MORE_DOCS) {
    return reader; // early terminate - nothing to do here since non of the docs has a recovery source anymore.
  }
  BooleanQuery.Builder builder = new BooleanQuery.Builder();
  builder.add(new DocValuesFieldExistsQuery(recoverySourceField), BooleanClause.Occur.FILTER);
  builder.add(retainSourceQuerySupplier.get(), BooleanClause.Occur.FILTER);
  IndexSearcher s = new IndexSearcher(reader);
  s.setQueryCache(null);
  Weight weight = s.createWeight(s.rewrite(builder.build()), false, 1.0f);
  Scorer scorer = weight.scorer(reader.getContext());
  if (scorer != null) {
    return new SourcePruningFilterCodecReader(recoverySourceField, reader, BitSet.of(scorer.iterator(), reader.maxDoc()));
  } else {
    return new SourcePruningFilterCodecReader(recoverySourceField, reader, null);
  }
}

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.elasticsearch

bitSet = null;
} else {
  bitSet = BitSet.of(s.iterator(), context.reader().maxDoc());

代码示例来源:origin: apache/servicemix-bundles

bitSet = null;
} else {
  bitSet = BitSet.of(s.iterator(), context.reader().maxDoc());

代码示例来源:origin: com.strapdata.elasticsearch/elasticsearch

private BitSet getAndLoadIfNotPresent(final Query query, final LeafReaderContext context) throws IOException, ExecutionException {
  final Object coreCacheReader = context.reader().getCoreCacheKey();
  final ShardId shardId = ShardUtils.extractShardId(context.reader());
  if (indexSettings.getIndex().equals(shardId.getIndex()) == false) {
    // insanity
    throw new IllegalStateException("Trying to load bit set for index " + shardId.getIndex()
        + " with cache of index " + indexSettings.getIndex());
  }
  Cache<Query, Value> filterToFbs = loadedFilters.computeIfAbsent(coreCacheReader, key -> {
    context.reader().addCoreClosedListener(BitsetFilterCache.this);
    return CacheBuilder.<Query, Value>builder().build();
  });
  return filterToFbs.computeIfAbsent(query, key -> {
    final IndexReaderContext topLevelContext = ReaderUtil.getTopLevelContext(context);
    final IndexSearcher searcher = new IndexSearcher(topLevelContext);
    searcher.setQueryCache(null);
    final Weight weight = searcher.createNormalizedWeight(query, false);
    Scorer s = weight.scorer(context);
    final BitSet bitSet;
    if (s == null) {
      bitSet = null;
    } else {
      bitSet = BitSet.of(s.iterator(), context.reader().maxDoc());
    }
    Value value = new Value(bitSet, shardId);
    listener.onCache(shardId, value.bitset);
    return value;
  }).bitset;
}

相关文章