本文整理汇总了Java中org.elasticsearch.action.search.SearchResponse.getScrollId方法的典型用法代码示例。如果您正苦于以下问题:Java SearchResponse.getScrollId方法的具体用法?Java SearchResponse.getScrollId怎么用?Java SearchResponse.getScrollId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.elasticsearch.action.search.SearchResponse
的用法示例。
在下文中一共展示了SearchResponse.getScrollId方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: iterator
import org.elasticsearch.action.search.SearchResponse; //导入方法依赖的package包/类
@Override
public Iterator<T> iterator() {
init();
if (firstResponse == null) {
return new ArrayList<T>().iterator();
}
SearchResponse response;
Iterator<T> it;
if (firstCall) {
response = firstResponse;
it = firstIterable.iterator();
firstCall = false;
} else {
response = getInitialSearchResponse();
it = searchResponseToIterable(response).iterator();
}
String scrollId = response.getScrollId();
return new InfiniteIterator(scrollId, it);
}
示例2: wrap
import org.elasticsearch.action.search.SearchResponse; //导入方法依赖的package包/类
private Response wrap(SearchResponse response) {
List<SearchFailure> failures;
if (response.getShardFailures() == null) {
failures = emptyList();
} else {
failures = new ArrayList<>(response.getShardFailures().length);
for (ShardSearchFailure failure: response.getShardFailures()) {
String nodeId = failure.shard() == null ? null : failure.shard().getNodeId();
failures.add(new SearchFailure(failure.getCause(), failure.index(), failure.shardId(), nodeId));
}
}
List<Hit> hits;
if (response.getHits().getHits() == null || response.getHits().getHits().length == 0) {
hits = emptyList();
} else {
hits = new ArrayList<>(response.getHits().getHits().length);
for (SearchHit hit: response.getHits().getHits()) {
hits.add(new ClientHit(hit));
}
hits = unmodifiableList(hits);
}
return new Response(response.isTimedOut(), failures, response.getHits().getTotalHits(),
hits, response.getScrollId());
}
示例3: startScroll
import org.elasticsearch.action.search.SearchResponse; //导入方法依赖的package包/类
/**
* 开始滚动数据
*
* @param queryBuilder 查询句柄
* @return 滚动id和当前的一批数据
*/
public Pair<String, List<Webpage>> startScroll(QueryBuilder queryBuilder, int size) {
SearchRequestBuilder searchRequestBuilder = client.prepareSearch(INDEX_NAME)
.setTypes(TYPE_NAME)
.setQuery(queryBuilder)
.setSize(size)
.setScroll(TimeValue.timeValueMinutes(SCROLL_TIMEOUT));
SearchResponse response = searchRequestBuilder.execute().actionGet();
return new MutablePair<>(response.getScrollId(), warpHits2List(response.getHits()));
}
示例4: exportData
import org.elasticsearch.action.search.SearchResponse; //导入方法依赖的package包/类
/**
* 导出数据
* @param builder
* @param labelsSupplier
* @param contentSupplier
* @param out 经过分词器的输出流
*/
protected void exportData(QueryBuilder builder, Function<SearchResponse, List<List<String>>> labelsSupplier,
Function<SearchResponse, List<String>> contentSupplier, OutputStream out) {
final int size = 50;
String scrollId = null;
int page = 1;
while(true) {
LOG.debug("正在输出第" + page + "页,query:" + builder);
SearchResponse response;
if(StringUtils.isBlank(scrollId)) {
response = search().setQuery(builder).setSize(size)
.setScroll(SCROLL_TIMEOUT).get();
scrollId = response.getScrollId();
} else {
response = client.prepareSearchScroll(scrollId)
.setScroll(SCROLL_TIMEOUT).get();
}
final List<List<String>> labels = labelsSupplier.apply(response);
final List<String> contentList = contentSupplier.apply(response);
Preconditions.checkNotNull(labels);
Preconditions.checkNotNull(contentList);
if(contentList.size()<=0)
break;
//开始分词
List<String> combine;
if(labels.size() > 0) {
combine = labels.stream().map(list -> list.parallelStream().collect(Collectors.joining("/")))
.collect(Collectors.toList());
for(int i = 0;i<labels.size();i++)
combine.set(i, combine.get(i) + " " + contentList.get(i));
} else
combine = contentList;
page++;
try {
IOUtils.write(combine.stream().collect(Collectors.joining("\n")) + "\n", out, "utf-8");
out.flush();
} catch(IOException e) {
LOG.error("文件写出错误, 由于 " + e.getLocalizedMessage());
}
}
}
示例5: testCancellationOfScrollSearchesOnFollowupRequests
import org.elasticsearch.action.search.SearchResponse; //导入方法依赖的package包/类
public void testCancellationOfScrollSearchesOnFollowupRequests() throws Exception {
List<ScriptedBlockPlugin> plugins = initBlockFactory();
indexTestData();
// Disable block so the first request would pass
disableBlocks(plugins);
logger.info("Executing search");
TimeValue keepAlive = TimeValue.timeValueSeconds(5);
SearchResponse searchResponse = client().prepareSearch("test")
.setScroll(keepAlive)
.setSize(2)
.setQuery(
scriptQuery(new Script(
ScriptType.INLINE, "native", NativeTestScriptedBlockFactory.TEST_NATIVE_BLOCK_SCRIPT, Collections.emptyMap())))
.get();
assertNotNull(searchResponse.getScrollId());
// Enable block so the second request would block
for (ScriptedBlockPlugin plugin : plugins) {
plugin.scriptedBlockFactory.reset();
plugin.scriptedBlockFactory.enableBlock();
}
String scrollId = searchResponse.getScrollId();
logger.info("Executing scroll with id {}", scrollId);
ListenableActionFuture<SearchResponse> scrollResponse = client().prepareSearchScroll(searchResponse.getScrollId())
.setScroll(keepAlive).execute();
awaitForBlock(plugins);
cancelSearch(SearchScrollAction.NAME);
disableBlocks(plugins);
SearchResponse response = ensureSearchWasCancelled(scrollResponse);
if (response != null) {
// The response didn't fail completely - update scroll id
scrollId = response.getScrollId();
}
logger.info("Cleaning scroll with id {}", scrollId);
client().prepareClearScroll().addScrollId(scrollId).get();
}
示例6: exportData
import org.elasticsearch.action.search.SearchResponse; //导入方法依赖的package包/类
/**
* 导出数据
*
* @param queryBuilder 数据查询
* @param labelsSupplier 提取labels,每篇文章返回一个label的List
* @param contentSupplier 提取正文
* @return 经过分词的输出流
*/
protected void exportData(QueryBuilder queryBuilder, Function<SearchResponse, List<List<String>>> labelsSupplier, Function<SearchResponse, List<String>> contentSupplier, OutputStream outputStream) {
final int size = 50;
String scrollId = null;
for (int page = 1; ; page++) {
LOG.debug("正在输出{}第{}页", queryBuilder, page);
SearchResponse response;
if (StringUtils.isBlank(scrollId)) {
response = client.prepareSearch(INDEX_NAME)
.setTypes(TYPE_NAME)
.setQuery(queryBuilder)
.setSize(size)
.setScroll(TimeValue.timeValueMinutes(SCROLL_TIMEOUT))
.execute().actionGet();
scrollId = response.getScrollId();
} else {
response = client.prepareSearchScroll(scrollId)
.setScroll(TimeValue.timeValueMinutes(SCROLL_TIMEOUT)).execute().actionGet();
}
final List<List<String>> labels = labelsSupplier.apply(response);
final List<String> contentList = contentSupplier.apply(response);
Preconditions.checkNotNull(labels);
Preconditions.checkNotNull(contentList);
if (contentList.size() <= 0) break;
List<String> combine;
if (labels.size() > 0) {
combine = labels.stream().map(labelList ->
labelList.parallelStream().collect(Collectors.joining("/")
)).collect(Collectors.toList());
for (int i = 0; i < labels.size(); i++) {
String content = contentList.get(i);
combine.set(i, combine.get(i) + " " + content);
}
} else {
combine = contentList;
}
try {
IOUtils.write(combine.stream().collect(Collectors.joining("\n")) + "\n", outputStream, "utf-8");
outputStream.flush();
} catch (IOException e) {
LOG.error("输出错误,{}", e.getLocalizedMessage());
}
}
}
示例7: startScroll
import org.elasticsearch.action.search.SearchResponse; //导入方法依赖的package包/类
public Pair<String, List<Webpage>> startScroll(QueryBuilder builder, int size) {
SearchResponse response = search().setSize(size).setQuery(builder)
.setScroll(SCROLL_TIMEOUT).get();
return new MutablePair<>(response.getScrollId(), hitsToList(response.getHits()));
}