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


Java SearchContext.scrollContext方法代码示例

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


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

示例1: executeQueryPhase

import org.elasticsearch.search.internal.SearchContext; //导入方法依赖的package包/类
public QuerySearchResultProvider executeQueryPhase(ShardSearchRequest request, SearchTask task) throws IOException {
    final SearchContext context = createAndPutContext(request);
    final SearchOperationListener operationListener = context.indexShard().getSearchOperationListener();
    context.incRef();
    try {
        context.setTask(task);
        operationListener.onPreQueryPhase(context);
        long time = System.nanoTime();
        contextProcessing(context);

        loadOrExecuteQueryPhase(request, context);

        if (context.queryResult().hasHits() == false && context.scrollContext() == null) {
            freeContext(context.id());
        } else {
            contextProcessedSuccessfully(context);
        }
        final long afterQueryTime = System.nanoTime();
        operationListener.onQueryPhase(context, afterQueryTime - time);
        if (request.numberOfShards() == 1) {
            return executeFetchPhase(context, operationListener, afterQueryTime);
        }
        return context.queryResult();
    } catch (Exception e) {
        // execution exception can happen while loading the cache, strip it
        if (e instanceof ExecutionException) {
            e = (e.getCause() == null || e.getCause() instanceof Exception) ?
                (Exception) e.getCause() : new ElasticsearchException(e.getCause());
        }
        operationListener.onFailedQueryPhase(context);
        logger.trace("Query phase failed", e);
        processFailure(context, e);
        throw ExceptionsHelper.convertToRuntime(e);
    } finally {
        cleanContext(context);
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:38,代码来源:SearchService.java

示例2: fetchPhaseShouldFreeContext

import org.elasticsearch.search.internal.SearchContext; //导入方法依赖的package包/类
private boolean fetchPhaseShouldFreeContext(SearchContext context) {
    if (context.scrollContext() == null) {
        // simple search, no scroll
        return true;
    } else {
        // scroll request, but the scroll was not extended
        return context.scrollContext().scroll == null;
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:10,代码来源:SearchService.java

示例3: executeFetchPhase

import org.elasticsearch.search.internal.SearchContext; //导入方法依赖的package包/类
public FetchSearchResult executeFetchPhase(ShardFetchRequest request, SearchTask task) {
    final SearchContext context = findContext(request.id());
    final SearchOperationListener operationListener = context.indexShard().getSearchOperationListener();
    context.incRef();
    try {
        context.setTask(task);
        contextProcessing(context);
        if (request.lastEmittedDoc() != null) {
            context.scrollContext().lastEmittedDoc = request.lastEmittedDoc();
        }
        context.docIdsToLoad(request.docIds(), 0, request.docIdsSize());
        operationListener.onPreFetchPhase(context);
        long time = System.nanoTime();
        fetchPhase.execute(context);
        if (fetchPhaseShouldFreeContext(context)) {
            freeContext(request.id());
        } else {
            contextProcessedSuccessfully(context);
        }
        operationListener.onFetchPhase(context, System.nanoTime() - time);
        return context.fetchResult();
    } catch (Exception e) {
        operationListener.onFailedFetchPhase(context);
        logger.trace("Fetch phase failed", e);
        processFailure(context, e);
        throw ExceptionsHelper.convertToRuntime(e);
    } finally {
        cleanContext(context);
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:31,代码来源:SearchService.java

示例4: freeAllScrollContexts

import org.elasticsearch.search.internal.SearchContext; //导入方法依赖的package包/类
public void freeAllScrollContexts() {
    for (SearchContext searchContext : activeContexts.values()) {
        if (searchContext.scrollContext() != null) {
            freeContext(searchContext.id());
        }
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:8,代码来源:SearchService.java

示例5: processScroll

import org.elasticsearch.search.internal.SearchContext; //导入方法依赖的package包/类
private void processScroll(InternalScrollSearchRequest request, SearchContext context) {
    // process scroll
    context.from(context.from() + context.size());
    context.scrollContext().scroll = request.scroll();
    // update the context keep alive based on the new scroll value
    if (request.scroll() != null && request.scroll().keepAlive() != null) {
        context.keepAlive(request.scroll().keepAlive().millis());
    }
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:10,代码来源:SearchService.java

示例6: build

import org.elasticsearch.search.internal.SearchContext; //导入方法依赖的package包/类
public CollapseContext build(SearchContext context) {
    if (context.scrollContext() != null) {
        throw new SearchContextException(context, "cannot use `collapse` in a scroll context");
    }
    if (context.searchAfter() != null) {
        throw new SearchContextException(context, "cannot use `collapse` in conjunction with `search_after`");
    }
    if (context.rescore() != null && context.rescore().isEmpty() == false) {
        throw new SearchContextException(context, "cannot use `collapse` in conjunction with `rescore`");
    }

    MappedFieldType fieldType = context.getQueryShardContext().fieldMapper(field);
    if (fieldType == null) {
        throw new SearchContextException(context, "no mapping found for `" + field + "` in order to collapse on");
    }
    if (fieldType instanceof KeywordFieldMapper.KeywordFieldType == false &&
        fieldType instanceof NumberFieldMapper.NumberFieldType == false) {
        throw new SearchContextException(context, "unknown type for collapse field `" + field +
            "`, only keywords and numbers are accepted");
    }

    if (fieldType.hasDocValues() == false) {
        throw new SearchContextException(context, "cannot collapse on field `" + field + "` without `doc_values`");
    }
    if (fieldType.indexOptions() == IndexOptions.NONE && innerHit != null) {
        throw new SearchContextException(context, "cannot expand `inner_hits` for collapse field `"
            + field + "`, " + "only indexed field can retrieve `inner_hits`");
    }
    return new CollapseContext(fieldType, innerHit);
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:31,代码来源:CollapseBuilder.java


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