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


Java SearchContext类代码示例

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


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

示例1: executeDfsPhase

import org.elasticsearch.search.internal.SearchContext; //导入依赖的package包/类
public DfsSearchResult executeDfsPhase(ShardSearchRequest request, SearchTask task) throws IOException {
    final SearchContext context = createAndPutContext(request);
    context.incRef();
    try {
        context.setTask(task);
        contextProcessing(context);
        dfsPhase.execute(context);
        contextProcessedSuccessfully(context);
        return context.dfsResult();
    } catch (Exception e) {
        logger.trace("Dfs phase failed", e);
        processFailure(context, e);
        throw ExceptionsHelper.convertToRuntime(e);
    } finally {
        cleanContext(context);
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:18,代码来源:SearchService.java

示例2: parseSpecial

import org.elasticsearch.search.internal.SearchContext; //导入依赖的package包/类
@Override
public void parseSpecial(String aggregationName, XContentParser parser, SearchContext context, XContentParser.Token token, String currentFieldName) throws IOException {

    if (token == XContentParser.Token.START_OBJECT) {
        SignificanceHeuristicParser significanceHeuristicParser = significanceHeuristicParserMapper.get(currentFieldName);
        if (significanceHeuristicParser != null) {
            significanceHeuristic = significanceHeuristicParser.parse(parser, context.parseFieldMatcher(), context);
        } else if (context.parseFieldMatcher().match(currentFieldName, BACKGROUND_FILTER)) {
            filter = context.queryParserService().parseInnerFilter(parser).query();
        } else {
            throw new SearchParseException(context, "Unknown key for a " + token + " in [" + aggregationName + "]: ["
                    + currentFieldName + "].", parser.getTokenLocation());
        }
    } else {
        throw new SearchParseException(context, "Unknown key for a " + token + " in [" + aggregationName + "]: [" + currentFieldName
                + "].", parser.getTokenLocation());
    }
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:19,代码来源:SignificantTermsParametersParser.java

示例3: assertLuceneQuery

import org.elasticsearch.search.internal.SearchContext; //导入依赖的package包/类
/**
 * Checks the result of {@link QueryBuilder#toQuery(QueryShardContext)} given the original {@link QueryBuilder}
 * and {@link QueryShardContext}. Verifies that named queries and boost are properly handled and delegates to
 * {@link #doAssertLuceneQuery(AbstractQueryBuilder, Query, SearchContext)} for query specific checks.
 */
private void assertLuceneQuery(QB queryBuilder, Query query, SearchContext context) throws IOException {
    if (queryBuilder.queryName() != null) {
        Query namedQuery = context.getQueryShardContext().copyNamedQueries().get(queryBuilder.queryName());
        assertThat(namedQuery, equalTo(query));
    }
    if (query != null) {
        if (queryBuilder.boost() != AbstractQueryBuilder.DEFAULT_BOOST) {
            assertThat(query, either(instanceOf(BoostQuery.class)).or(instanceOf(SpanBoostQuery.class)));
            if (query instanceof SpanBoostQuery) {
                SpanBoostQuery spanBoostQuery = (SpanBoostQuery) query;
                assertThat(spanBoostQuery.getBoost(), equalTo(queryBuilder.boost()));
                query = spanBoostQuery.getQuery();
            } else {
                BoostQuery boostQuery = (BoostQuery) query;
                assertThat(boostQuery.getBoost(), equalTo(queryBuilder.boost()));
                query = boostQuery.getQuery();
            }
        }
    }
    doAssertLuceneQuery(queryBuilder, query, context);
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:27,代码来源:AbstractQueryTestCase.java

示例4: hitExecute

import org.elasticsearch.search.internal.SearchContext; //导入依赖的package包/类
@Override
public void hitExecute(SearchContext context, HitContext hitContext) {
    List<String> matchedQueries = new ArrayList<>(2);

    try {
        addMatchedQueries(hitContext, context.parsedQuery().namedFilters(), matchedQueries);

        if (context.parsedPostFilter() != null) {
            addMatchedQueries(hitContext, context.parsedPostFilter().namedFilters(), matchedQueries);
        }
    } catch (IOException e) {
        throw ExceptionsHelper.convertToElastic(e);
    } finally {
        SearchContext.current().clearReleasables(Lifetime.COLLECTION);
    }

    hitContext.hit().matchedQueries(matchedQueries.toArray(new String[matchedQueries.size()]));
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:19,代码来源:MatchedQueriesFetchSubPhase.java

示例5: doAssertLuceneQuery

import org.elasticsearch.search.internal.SearchContext; //导入依赖的package包/类
@Override
protected void doAssertLuceneQuery(GeoBoundingBoxQueryBuilder queryBuilder, Query query, SearchContext searchContext)
    throws IOException {
    QueryShardContext context = searchContext.getQueryShardContext();
    MappedFieldType fieldType = context.fieldMapper(queryBuilder.fieldName());
    if (fieldType == null) {
        assertTrue("Found no indexed geo query.", query instanceof MatchNoDocsQuery);
    } else if (query instanceof IndexOrDocValuesQuery) { // TODO: remove the if statement once we always use LatLonPoint
        Query indexQuery = ((IndexOrDocValuesQuery) query).getIndexQuery();
        assertEquals(LatLonPoint.newBoxQuery(queryBuilder.fieldName(),
                queryBuilder.bottomRight().lat(),
                queryBuilder.topLeft().lat(),
                queryBuilder.topLeft().lon(),
                queryBuilder.bottomRight().lon()), indexQuery);
        Query dvQuery = ((IndexOrDocValuesQuery) query).getRandomAccessQuery();
        assertEquals(LatLonDocValuesField.newBoxQuery(queryBuilder.fieldName(),
                queryBuilder.bottomRight().lat(),
                queryBuilder.topLeft().lat(),
                queryBuilder.topLeft().lon(),
                queryBuilder.bottomRight().lon()), dvQuery);
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:23,代码来源:GeoBoundingBoxQueryBuilderTests.java

示例6: testBuild_ingoreUnmappedNestQuery

import org.elasticsearch.search.internal.SearchContext; //导入依赖的package包/类
public void testBuild_ingoreUnmappedNestQuery() throws Exception {
    QueryShardContext queryShardContext = mock(QueryShardContext.class);
    when(queryShardContext.getObjectMapper("path")).thenReturn(null);
    SearchContext searchContext = mock(SearchContext.class);
    when(searchContext.getQueryShardContext()).thenReturn(queryShardContext);

    InnerHitBuilder leafInnerHits = randomInnerHits();
    NestedQueryBuilder query1 = new NestedQueryBuilder("path", new MatchAllQueryBuilder(), ScoreMode.None);
    query1.innerHit(leafInnerHits, false);
    expectThrows(IllegalStateException.class, () -> query1.innerHit().build(searchContext, new InnerHitsContext()));

    NestedQueryBuilder query2 = new NestedQueryBuilder("path", new MatchAllQueryBuilder(), ScoreMode.None);
    query2.innerHit(leafInnerHits, true);
    InnerHitsContext innerHitsContext = new InnerHitsContext();
    query2.innerHit().build(searchContext, innerHitsContext);
    assertThat(innerHitsContext.getInnerHits().size(), equalTo(0));
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:18,代码来源:InnerHitBuilderTests.java

示例7: parse

import org.elasticsearch.search.internal.SearchContext; //导入依赖的package包/类
@Override
public void parse(XContentParser parser, SearchContext context) throws Exception {
    XContentParser.Token token = parser.currentToken();
    if (token == XContentParser.Token.VALUE_NUMBER) {
        int terminateAfterCount = parser.intValue();
        if (terminateAfterCount <= 0) {
            throw new IllegalArgumentException("terminateAfter must be > 0");
        }
        context.terminateAfter(parser.intValue());
    }
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:12,代码来源:TerminateAfterParseElement.java

示例8: hitExecute

import org.elasticsearch.search.internal.SearchContext; //导入依赖的package包/类
@Override
public void hitExecute(SearchContext context, HitContext hitContext) {
    if (context.storedFieldsContext() != null && context.storedFieldsContext().fetchFields() == false) {
        return ;
    }
    ParentFieldMapper parentFieldMapper = context.mapperService().documentMapper(hitContext.hit().getType()).parentFieldMapper();
    if (parentFieldMapper.active() == false) {
        return;
    }

    String parentId = getParentId(parentFieldMapper, hitContext.reader(), hitContext.docId());
    if (parentId == null) {
        // hit has no _parent field. Can happen for nested inner hits if parent hit is a p/c document.
        return;
    }

    Map<String, SearchHitField> fields = hitContext.hit().fieldsOrNull();
    if (fields == null) {
        fields = new HashMap<>();
        hitContext.hit().fields(fields);
    }
    fields.put(ParentFieldMapper.NAME, new SearchHitField(ParentFieldMapper.NAME, Collections.singletonList(parentId)));
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:24,代码来源:ParentFieldSubFetchPhase.java

示例9: ExtendedStatsAggregator

import org.elasticsearch.search.internal.SearchContext; //导入依赖的package包/类
public ExtendedStatsAggregator(String name, ValuesSource.Numeric valuesSource, DocValueFormat formatter,
        SearchContext context, Aggregator parent, double sigma, List<PipelineAggregator> pipelineAggregators,
        Map<String, Object> metaData)
        throws IOException {
    super(name, context, parent, pipelineAggregators, metaData);
    this.valuesSource = valuesSource;
    this.format = formatter;
    this.sigma = sigma;
    if (valuesSource != null) {
        final BigArrays bigArrays = context.bigArrays();
        counts = bigArrays.newLongArray(1, true);
        sums = bigArrays.newDoubleArray(1, true);
        mins = bigArrays.newDoubleArray(1, false);
        mins.fill(0, mins.size(), Double.POSITIVE_INFINITY);
        maxes = bigArrays.newDoubleArray(1, false);
        maxes.fill(0, maxes.size(), Double.NEGATIVE_INFINITY);
        sumOfSqrs = bigArrays.newDoubleArray(1, true);
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:20,代码来源:ExtendedStatsAggregator.java

示例10: parse

import org.elasticsearch.search.internal.SearchContext; //导入依赖的package包/类
@Override
public SignificanceHeuristic parse(XContentParser parser, ParseFieldMatcher parseFieldMatcher, SearchContext context)
        throws IOException, QueryParsingException {
    String givenName = parser.currentName();
    boolean includeNegatives = false;
    boolean backgroundIsSuperset = true;
    XContentParser.Token token = parser.nextToken();
    while (!token.equals(XContentParser.Token.END_OBJECT)) {
        if (parseFieldMatcher.match(parser.currentName(), INCLUDE_NEGATIVES_FIELD)) {
            parser.nextToken();
            includeNegatives = parser.booleanValue();
        } else if (parseFieldMatcher.match(parser.currentName(), BACKGROUND_IS_SUPERSET)) {
            parser.nextToken();
            backgroundIsSuperset = parser.booleanValue();
        } else {
            throw new ElasticsearchParseException("failed to parse [{}] significance heuristic. unknown field [{}]", givenName, parser.currentName());
        }
        token = parser.nextToken();
    }
    return newHeuristic(includeNegatives, backgroundIsSuperset);
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:22,代码来源:NXYSignificanceHeuristic.java

示例11: findNestedObjectMapper

import org.elasticsearch.search.internal.SearchContext; //导入依赖的package包/类
/**
 * Returns the best nested {@link ObjectMapper} instances that is in the scope of the specified nested docId.
 */
public ObjectMapper findNestedObjectMapper(int nestedDocId, SearchContext sc, LeafReaderContext context) throws IOException {
    ObjectMapper nestedObjectMapper = null;
    for (ObjectMapper objectMapper : objectMappers().values()) {
        if (!objectMapper.nested().isNested()) {
            continue;
        }

        Query filter = objectMapper.nestedTypeFilter();
        if (filter == null) {
            continue;
        }
        // We can pass down 'null' as acceptedDocs, because nestedDocId is a doc to be fetched and
        // therefor is guaranteed to be a live doc.
        final Weight nestedWeight = filter.createWeight(sc.searcher(), false);
        Scorer scorer = nestedWeight.scorer(context);
        if (scorer == null) {
            continue;
        }

        if (scorer.iterator().advance(nestedDocId) == nestedDocId) {
            if (nestedObjectMapper == null) {
                nestedObjectMapper = objectMapper;
            } else {
                if (nestedObjectMapper.fullPath().length() < objectMapper.fullPath().length()) {
                    nestedObjectMapper = objectMapper;
                }
            }
        }
    }
    return nestedObjectMapper;
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:35,代码来源:DocumentMapper.java

示例12: testSlowLogSearchContextPrinterToLog

import org.elasticsearch.search.internal.SearchContext; //导入依赖的package包/类
public void testSlowLogSearchContextPrinterToLog() throws IOException {
    IndexService index = createIndex("foo");
    SearchContext searchContext = createSearchContext(index);
    SearchSourceBuilder source = SearchSourceBuilder.searchSource().query(QueryBuilders.matchAllQuery());
    searchContext.request().source(source);
    SearchSlowLog.SlowLogSearchContextPrinter p = new SearchSlowLog.SlowLogSearchContextPrinter(searchContext, 10);
    assertThat(p.toString(), startsWith("[foo][0]"));
    // Makes sure that output doesn't contain any new lines
    assertThat(p.toString(), not(containsString("\n")));
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:11,代码来源:SearchSlowLogTests.java

示例13: doAssertLuceneQuery

import org.elasticsearch.search.internal.SearchContext; //导入依赖的package包/类
@Override
protected void doAssertLuceneQuery(SpanOrQueryBuilder queryBuilder, Query query, SearchContext context) throws IOException {
    assertThat(query, instanceOf(SpanOrQuery.class));
    SpanOrQuery spanOrQuery = (SpanOrQuery) query;
    assertThat(spanOrQuery.getClauses().length, equalTo(queryBuilder.clauses().size()));
    Iterator<SpanQueryBuilder> spanQueryBuilderIterator = queryBuilder.clauses().iterator();
    for (SpanQuery spanQuery : spanOrQuery.getClauses()) {
        assertThat(spanQuery, equalTo(spanQueryBuilderIterator.next().toQuery(context.getQueryShardContext())));
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:11,代码来源:SpanOrQueryBuilderTests.java

示例14: MatrixStatsAggregator

import org.elasticsearch.search.internal.SearchContext; //导入依赖的package包/类
public MatrixStatsAggregator(String name, Map<String, ValuesSource.Numeric> valuesSources, SearchContext context,
                             Aggregator parent, MultiValueMode multiValueMode, List<PipelineAggregator> pipelineAggregators,
                             Map<String,Object> metaData) throws IOException {
    super(name, context, parent, pipelineAggregators, metaData);
    if (valuesSources != null && !valuesSources.isEmpty()) {
        this.valuesSources = new NumericMultiValuesSource(valuesSources, multiValueMode);
        stats = context.bigArrays().newObjectArray(1);
    } else {
        this.valuesSources = null;
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:12,代码来源:MatrixStatsAggregator.java

示例15: HighlighterContext

import org.elasticsearch.search.internal.SearchContext; //导入依赖的package包/类
public HighlighterContext(String fieldName, SearchContextHighlight.Field field, FieldMapper mapper, SearchContext context,
        FetchSubPhase.HitContext hitContext, Query query) {
    this.fieldName = fieldName;
    this.field = field;
    this.mapper = mapper;
    this.context = context;
    this.hitContext = hitContext;
    this.query = query;
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:10,代码来源:HighlighterContext.java


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