当前位置: 首页>>代码示例>>Java>>正文


Java LeafReaderContext类代码示例

本文整理汇总了Java中org.apache.lucene.index.LeafReaderContext的典型用法代码示例。如果您正苦于以下问题:Java LeafReaderContext类的具体用法?Java LeafReaderContext怎么用?Java LeafReaderContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


LeafReaderContext类属于org.apache.lucene.index包,在下文中一共展示了LeafReaderContext类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getValues

import org.apache.lucene.index.LeafReaderContext; //导入依赖的package包/类
@Override
@SuppressWarnings("rawtypes") // ValueSource uses a rawtype
public FunctionValues getValues(Map context, LeafReaderContext leaf) throws IOException {
    AtomicGeoPointFieldData leafData = (AtomicGeoPointFieldData) fieldData.load(leaf);
    final MultiGeoPointValues values = leafData.getGeoPointValues();
    return new DoubleDocValues(this) {
        @Override
        public double doubleVal(int doc) {
            values.setDocument(doc);
            if (values.count() == 0) {
                return 0.0;
            } else {
                return values.valueAt(0).getLon();
            }
        }
    };
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:18,代码来源:GeoLongitudeValueSource.java

示例2: createWeight

import org.apache.lucene.index.LeafReaderContext; //导入依赖的package包/类
@Override
public Weight createWeight(IndexSearcher searcher, boolean needsScores) throws IOException {
    return new RandomAccessWeight(this) {
        @Override
        protected Bits getMatchingDocs(final LeafReaderContext context) throws IOException {
            final SortedNumericDocValues values = DocValues.getSortedNumeric(context.reader(), getField());
            return new Bits() {
                @Override
                public boolean get(int doc) {
                    values.setDocument(doc);
                    for (int i = 0; i < values.count(); i++) {
                        return contains(BitMixer.mix(values.valueAt(i)));
                    }
                    return contains(0);
                }

                @Override
                public int length() {
                    return context.reader().maxDoc();
                }
            };
        }
    };
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:25,代码来源:DocValuesSliceQuery.java

示例3: testMissingShard

import org.apache.lucene.index.LeafReaderContext; //导入依赖的package包/类
public void testMissingShard() throws IOException {
    try (Directory dir = newDirectory();
            RandomIndexWriter w = new RandomIndexWriter(random(), dir)) {
        w.addDocument(new Document());
        try (IndexReader reader = w.getReader()) {
            ShardCoreKeyMap map = new ShardCoreKeyMap();
            for (LeafReaderContext ctx : reader.leaves()) {
                try {
                    map.add(ctx.reader());
                    fail();
                } catch (IllegalArgumentException expected) {
                    // ok
                }
            }
        }
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:18,代码来源:ShardCoreKeyMapTests.java

示例4: getLeafCollector

import org.apache.lucene.index.LeafReaderContext; //导入依赖的package包/类
@Override
public LeafBucketCollector getLeafCollector(LeafReaderContext ctx,
        final LeafBucketCollector sub) throws IOException {
    // no need to provide deleted docs to the filter
    final Bits[] bits = new Bits[filters.length];
    for (int i = 0; i < filters.length; ++i) {
        bits[i] = Lucene.asSequentialAccessBits(ctx.reader().maxDoc(), filters[i].scorer(ctx));
    }
    return new LeafBucketCollectorBase(sub, null) {
        @Override
        public void collect(int doc, long bucket) throws IOException {
            boolean matched = false;
            for (int i = 0; i < bits.length; i++) {
                if (bits[i].get(doc)) {
                    collectBucket(sub, doc, bucketOrd(bucket, i));
                    matched = true;
                }
            }
            if (showOtherBucket && !matched) {
                collectBucket(sub, doc, bucketOrd(bucket, bits.length));
            }
        }
    };
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:25,代码来源:FiltersAggregator.java

示例5: initialize

import org.apache.lucene.index.LeafReaderContext; //导入依赖的package包/类
public void initialize(Engine.Searcher docSearcher, ParsedDocument parsedDocument) {
    this.docSearcher = docSearcher;

    IndexReader indexReader = docSearcher.reader();
    LeafReaderContext atomicReaderContext = indexReader.leaves().get(0);
    LeafSearchLookup leafLookup = lookup().getLeafSearchLookup(atomicReaderContext);
    leafLookup.setDocument(0);
    leafLookup.source().setSource(parsedDocument.source());

    Map<String, SearchHitField> fields = new HashMap<>();
    for (IndexableField field : parsedDocument.rootDoc().getFields()) {
        fields.put(field.name(), new InternalSearchHitField(field.name(), Collections.emptyList()));
    }
    hitContext().reset(
            new InternalSearchHit(0, "unknown", new Text(parsedDocument.type()), fields),
            atomicReaderContext, 0, docSearcher.searcher()
    );
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:19,代码来源:PercolateContext.java

示例6: getLeafCollector

import org.apache.lucene.index.LeafReaderContext; //导入依赖的package包/类
@Override
public LeafBucketCollector getLeafCollector(LeafReaderContext ctx,
        final LeafBucketCollector sub) throws IOException {

    globalOrds = valuesSource.globalOrdinalsValues(ctx);

    if (acceptedGlobalOrdinals == null && includeExclude != null) {
        acceptedGlobalOrdinals = includeExclude.acceptedGlobalOrdinals(globalOrds, valuesSource);
    }

    if (acceptedGlobalOrdinals != null) {
        globalOrds = new FilteredOrdinals(globalOrds, acceptedGlobalOrdinals);
    }

    return newCollector(globalOrds, sub);
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:17,代码来源:GlobalOrdinalsStringTermsAggregator.java

示例7: getKeys

import org.apache.lucene.index.LeafReaderContext; //导入依赖的package包/类
@Override
protected NumericDocValues getKeys(LeafReaderContext context) {
    try {
        values = valuesSource.bytesValues(context);
    } catch (IOException e) {
        throw new ElasticsearchException("Error reading values", e);
    }
    return new NumericDocValues() {
        @Override
        public long get(int doc) {

            values.setDocument(doc);
            final int valuesCount = values.count();
            if (valuesCount > 1) {
                throw new IllegalArgumentException("Sample diversifying key must be a single valued-field");
            }
            if (valuesCount == 1) {
                final BytesRef bytes = values.valueAt(0);
                return bytes.hashCode();
            }
            return 0;
        }
    };
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:25,代码来源:DiversifiedBytesHashSamplerAggregator.java

示例8: exists

import org.apache.lucene.index.LeafReaderContext; //导入依赖的package包/类
/**
 * Check whether there is one or more documents matching the provided query.
 */
public static boolean exists(IndexSearcher searcher, Query query) throws IOException {
    final Weight weight = searcher.createNormalizedWeight(query, false);
    // the scorer API should be more efficient at stopping after the first
    // match than the bulk scorer API
    for (LeafReaderContext context : searcher.getIndexReader().leaves()) {
        final Scorer scorer = weight.scorer(context);
        if (scorer == null) {
            continue;
        }
        final Bits liveDocs = context.reader().getLiveDocs();
        final DocIdSetIterator iterator = scorer.iterator();
        for (int doc = iterator.nextDoc(); doc != DocIdSetIterator.NO_MORE_DOCS; doc = iterator.nextDoc()) {
            if (liveDocs == null || liveDocs.get(doc)) {
                return true;
            }
        }
    }
    return false;
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:23,代码来源:Lucene.java

示例9: scorer

import org.apache.lucene.index.LeafReaderContext; //导入依赖的package包/类
@Override
public Scorer scorer(LeafReaderContext context) throws IOException {
    final Scorer parentScorer = parentWeight.scorer(context);

    // no matches
    if (parentScorer == null) {
        return null;
    }

    BitSet parents = parentsFilter.getBitSet(context);
    if (parents == null) {
        // No matches
        return null;
    }

    int firstParentDoc = parentScorer.iterator().nextDoc();
    if (firstParentDoc == DocIdSetIterator.NO_MORE_DOCS) {
        // No matches
        return null;
    }
    return new IncludeNestedDocsScorer(this, parentScorer, parents, firstParentDoc);
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:23,代码来源:IncludeNestedDocsQuery.java

示例10: LeafSearchLookup

import org.apache.lucene.index.LeafReaderContext; //导入依赖的package包/类
public LeafSearchLookup(LeafReaderContext ctx, LeafDocLookup docMap, SourceLookup sourceLookup,
        LeafFieldsLookup fieldsLookup, LeafIndexLookup indexLookup, Map<String, Object> topLevelMap) {
    this.ctx = ctx;
    this.docMap = docMap;
    this.sourceLookup = sourceLookup;
    this.fieldsLookup = fieldsLookup;
    this.indexLookup = indexLookup;

    ImmutableMap.Builder<String, Object> builder = ImmutableMap.builder();
    builder.putAll(topLevelMap);
    builder.put("doc", docMap);
    builder.put("_doc", docMap);
    builder.put("_source", sourceLookup);
    builder.put("_fields", fieldsLookup);
    builder.put("_index", indexLookup);
    asMap = builder.build();
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:18,代码来源:LeafSearchLookup.java

示例11: loadDirect

import org.apache.lucene.index.LeafReaderContext; //导入依赖的package包/类
@Override
public AtomicGeoPointFieldData loadDirect(LeafReaderContext context) throws Exception {
    LeafReader reader = context.reader();

    Terms terms = reader.terms(getFieldNames().indexName());
    AtomicGeoPointFieldData data = null;
    // TODO: Use an actual estimator to estimate before loading.
    NonEstimatingEstimator estimator = new NonEstimatingEstimator(breakerService.getBreaker(CircuitBreaker.FIELDDATA));
    if (terms == null) {
        data = AbstractAtomicGeoPointFieldData.empty(reader.maxDoc());
        estimator.afterLoad(null, data.ramBytesUsed());
        return data;
    }
    return (Version.indexCreated(indexSettings).before(Version.V_2_2_0)) ?
        loadLegacyFieldData(reader, estimator, terms, data) : loadFieldData22(reader, estimator, terms, data);
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:17,代码来源:GeoPointArrayIndexFieldData.java

示例12: LeafSearchLookup

import org.apache.lucene.index.LeafReaderContext; //导入依赖的package包/类
public LeafSearchLookup(LeafReaderContext ctx, LeafDocLookup docMap, SourceLookup sourceLookup,
        LeafFieldsLookup fieldsLookup, LeafIndexLookup indexLookup, Map<String, Object> topLevelMap) {
    this.ctx = ctx;
    this.docMap = docMap;
    this.sourceLookup = sourceLookup;
    this.fieldsLookup = fieldsLookup;
    this.indexLookup = indexLookup;

    Map<String, Object> asMap = new HashMap<>(topLevelMap.size() + 5);
    asMap.putAll(topLevelMap);
    asMap.put("doc", docMap);
    asMap.put("_doc", docMap);
    asMap.put("_source", sourceLookup);
    asMap.put("_fields", fieldsLookup);
    asMap.put("_index", indexLookup);
    this.asMap = unmodifiableMap(asMap);
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:18,代码来源:LeafSearchLookup.java

示例13: getDistanceString

import org.apache.lucene.index.LeafReaderContext; //导入依赖的package包/类
@Override
protected String getDistanceString(LeafReaderContext ctx, int docId) {

    StringBuilder values = new StringBuilder(mode.name());
    values.append("[");
    final SortedNumericDoubleValues doubleValues = fieldData.load(ctx).getDoubleValues();
    doubleValues.setDocument(docId);
    final int num = doubleValues.count();
    if (num > 0) {
        for (int i = 0; i < num; i++) {
            double value = doubleValues.valueAt(i);
            values.append("Math.max(Math.abs(");
            values.append(value).append("(=doc value) - ");
            values.append(origin).append("(=origin))) - ");
            values.append(offset).append("(=offset), 0)");
            if (i != num - 1) {
                values.append(", ");
            }
        }
    } else {
        values.append("0.0");
    }
    values.append("]");
    return values.toString();

}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:27,代码来源:DecayFunctionBuilder.java

示例14: getLeafCollector

import org.apache.lucene.index.LeafReaderContext; //导入依赖的package包/类
@Override
public LeafBucketCollector getLeafCollector(LeafReaderContext ctx,
        final LeafBucketCollector sub) throws IOException {
    return new LeafBucketCollectorBase(super.getLeafCollector(ctx, sub), null) {
        @Override
        public void collect(int doc, long bucket) throws IOException {
            assert bucket == 0;
            numCollectedDocs++;
            globalOrds.setDocument(doc);
            final int numOrds = globalOrds.cardinality();
            for (int i = 0; i < numOrds; i++) {
                final long globalOrd = globalOrds.ordAt(i);
                long bucketOrd = bucketOrds.add(globalOrd);
                if (bucketOrd < 0) {
                    bucketOrd = -1 - bucketOrd;
                    collectExistingBucket(sub, doc, bucketOrd);
                } else {
                    collectBucket(sub, doc, bucketOrd);
                }
            }
        }
    };
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:24,代码来源:GlobalOrdinalsSignificantTermsAggregator.java

示例15: doSetNextReader

import org.apache.lucene.index.LeafReaderContext; //导入依赖的package包/类
@Override
protected void doSetNextReader(LeafReaderContext context) throws IOException {
    // trigger keep-alive here as well
    // in case we have a long running query without actual matches
    for (LuceneCollectorExpression<?> expression : expressions) {
        expression.setNextReader(context);
    }
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:9,代码来源:CrateDocCollector.java


注:本文中的org.apache.lucene.index.LeafReaderContext类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。