国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java ES 滾動查詢

這篇具有很好參考價值的文章主要介紹了Java ES 滾動查詢。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

滾動查詢(Scroll Query)是 Elasticsearch 提供的一種機(jī)制,用于處理大量數(shù)據(jù)的查詢。它允許你在多個請求之間保持“游標(biāo)”,以便在后續(xù)請求中獲取更多的結(jié)果。

以下是滾動查詢的基本工作原理:

1 初始查詢:
客戶端發(fā)送一個查詢請求給 Elasticsearch,并指定一個滾動時間(scroll time)。

2 首次返回結(jié)果:
Elasticsearch會處理這個查詢請求,并將結(jié)果返回給客戶端。
除了返回查詢結(jié)果之外,還會返回一個特殊的“滾動ID”(scroll ID)。

3 保持連接:
客戶端將這個滾動ID保存下來,以便在后續(xù)請求中使用。

4 后續(xù)查詢:
在滾動時間內(nèi),客戶端可以使用保存的滾動ID來獲取更多的結(jié)果,而不需要重新發(fā)送完整的查詢請求。
客戶端發(fā)送一個滾動請求,并提供之前收到的滾動ID。

5 返回后續(xù)結(jié)果:
Elasticsearch會使用之前的滾動ID來獲取接下來的結(jié)果,并將其返回給客戶端。
如果有更多的結(jié)果可用,它也會返回一個新的滾動ID,以便在下一次請求中使用。

6 重復(fù)步驟4和步驟5:
客戶端可以在滾動時間內(nèi)多次使用滾動ID來獲取更多的結(jié)果,直到?jīng)]有更多的結(jié)果可用為止。

7 滾動ID的失效:
一旦滾動時間過期(在初始查詢時指定的時間),或者客戶端主動關(guān)閉滾動查詢,相應(yīng)的滾動ID將失效,不再能用于獲取結(jié)果。
滾動查詢的優(yōu)點在于,它允許你在多個請求之間保持連接狀態(tài),從而能夠處理大量數(shù)據(jù)而不會因為單次請求的數(shù)據(jù)量過大而出現(xiàn)問題。

需要注意的是,滾動查詢并不適用于實時查詢,因為它會保持資源開銷,直到滾動時間過期或者顯式關(guān)閉滾動查詢?yōu)橹?。因此,滾動查詢通常用于離線批量處理或需要處理大量數(shù)據(jù)的情況。文章來源地址http://www.zghlxwxcb.cn/news/detail-714090.html

@Test
public void searchScroll() {
	long gte = 0;
	long lt = 100000000;

	BoolQueryBuilder query = new BoolQueryBuilder();
	query.must(QueryBuilders.rangeQuery("createTime").gte(gte).lt(lt));

	NativeSearchQueryBuilder builder = new NativeSearchQueryBuilder();
	builder.withPageable(PageRequest.of(0, 500)); // 每次只處理500條數(shù)據(jù)
	builder.withQuery(query);

	// 查詢
	IndexCoordinates index = "student";
	SearchScrollHits<Student> hits = template.searchScrollStart(
			60000L,
			builder.build(),
			Student.class,
			index);

	String scrollId = hits.getScrollId();
	List<String> scrollIdList = new LinkedList<>();
	scrollIdList.add(scrollId);

	List<CheckItemCount> list = new LinkedList<>();
	while (hits.hasSearchHits()) {

		// 處理數(shù)據(jù)
		List<SearchHit<Student>> hitList = hits.getSearchHits();
		for (SearchHit<Student> hit : hitList) {
			// 處理數(shù)據(jù)
		}
		
		// 滾動查詢下一頁
		hits = template.searchScrollContinue(scrollId, 60000L, Student.class, index);
		scrollId = hits.getScrollId();
		scrollIdList.add(scrollId);
		
	}
	// 清空滾動查詢
	template.searchScrollClear(scrollIdList);
}

到了這里,關(guān)于Java ES 滾動查詢的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • ElasticSearch第六講 ES 三種分頁查詢from+size / Scroll /search_after

    我的Git地址:https://gitee.com/ITLULU 歡迎訪問 ES的分頁查詢和關(guān)系數(shù)據(jù)庫的分頁查詢的區(qū)別: ES分頁查詢有以下幾種: 1:簡單的 from size (有默認(rèn)的最大Size,不可無限大小查詢,因為數(shù)據(jù)過多查詢性能會降低,且也要考慮內(nèi)存問題,以及OS緩存數(shù)據(jù)的能力) 2: scroll基于查詢窗口

    2024年02月01日
    瀏覽(15)
  • ElasticSearch進(jìn)階:多種查詢操作,各種ES查詢以及在Java中的實現(xiàn)

    ElasticSearch進(jìn)階:多種查詢操作,各種ES查詢以及在Java中的實現(xiàn)

    目錄 前言 1 詞條查詢 1.1 等值查詢-term 1.2 多值查詢-terms 1.3 范圍查詢-range 1.4 前綴查詢-prefix 1.5 通配符查詢-wildcard 2 復(fù)合查詢 2.1 布爾查詢 2.2 Filter查詢 3 聚合查詢 3.1 最值、平均值、求和 3.2 去重查詢 3.3 分組聚合 3.3.1 單條件分組 3.3.2 多條件分組 3.4 過濾聚合 ElasticSearch 第一篇

    2024年02月02日
    瀏覽(26)
  • 【ElasticSearch】ES自動補全查詢與Java接口實現(xiàn)

    【ElasticSearch】ES自動補全查詢與Java接口實現(xiàn)

    自動補全就是當(dāng)用戶在搜索框輸入字符時,我們應(yīng)該提示出與該字符有關(guān)的搜索項。 要實現(xiàn)根據(jù)字母做補全,就必須對文檔按照拼音分詞。GitHub上有相關(guān)插件,地址:https://github.com/medcl/elasticsearch-analysis-pinyin,下載和ES對應(yīng)的版本。 安裝步驟: 解壓 上傳到虛擬機(jī)中,elasti

    2024年02月15日
    瀏覽(20)
  • ElasticSearch進(jìn)階:一文全覽各種ES查詢在Java中的實現(xiàn)

    ElasticSearch進(jìn)階:一文全覽各種ES查詢在Java中的實現(xiàn)

    ElasticSearch進(jìn)階:一文全覽各種ES查詢在Java中的實現(xiàn) es基本語句詳解 查詢語句詳解 ElasticSearch第一篇: ElasticSearch基礎(chǔ):從倒排索引說起,快速認(rèn)知ES 完整項目已上傳至:ElasticSearch Demo 項目,該項目是關(guān)于springboot的集成項目,ElasticSearch部分請關(guān)注【elasticSearch-demo】模塊。覺得

    2024年02月02日
    瀏覽(20)
  • ElasticSearch如何使用以及java代碼如何查詢并排序ES中的數(shù)據(jù)(距離排序)

    ElasticSearch如何使用以及java代碼如何查詢并排序ES中的數(shù)據(jù)(距離排序)

    import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.geo.GeoDistance; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.common.unit.

    2024年04月12日
    瀏覽(25)
  • Java 實現(xiàn)對ES的Scroll讀以及分片Scroll讀--全量數(shù)據(jù)讀取

    本文實現(xiàn)的是使用Java對ES索引全量數(shù)據(jù)的讀取操作。ES版本是7.14。采用兩種方式,一種是不分片讀,一種是分片讀。 對ES實現(xiàn)全量讀取需要依賴到ES所提供的API,這里需要添加兩個依賴 方式一不分片Scroll讀取 方式二分片讀取 分片就是將一個索引的全量數(shù)據(jù)分成幾塊,對每個

    2024年02月11日
    瀏覽(15)
  • Elasticsearch Search Scroll API(滾動查詢)

    Elasticsearch Search Scroll API(滾動查詢)

    參考:Elasticsearch Search Scroll API(滾動查詢) - 簡書 Elasticsearch 中,傳統(tǒng)的分頁查詢使用 from+size 的模式, from 就是頁碼,從 0 開始。默認(rèn)情況下,當(dāng) (from+1)*size 大于 10000 時,也就是已查詢的總數(shù)據(jù)量大于 10000 時,會出現(xiàn)異常。 如下,用循環(huán)模擬一個連續(xù)分頁查詢: 最終當(dāng)

    2023年04月20日
    瀏覽(18)
  • ES度量聚合(ElasticSearch Metric Aggregations),Java開發(fā)自學(xué)教程

    ES度量聚合(ElasticSearch Metric Aggregations),Java開發(fā)自學(xué)教程

    .value( (new MultiValuesSourceFieldConfig.Builder()) .setFieldName(“num”) .setMissing(0) .build() ) .weight( (new MultiValuesSourceFieldConfig.Builder()) .setFieldName(“num”) .setMissing(1) .build() ) // .valueType(ValueType.LONG) ; avg.toString(); sourceBuilder.aggregation(avg); sourceBuilder.size(0); sourceBuilder.query( QueryBuilders.termQuery(“

    2024年04月14日
    瀏覽(26)
  • ES scroll查詢的坑點

    scroll 查詢是ES中為了解決一次獲取不到全部數(shù)據(jù)的一種解決方案。 第一次查詢 第二次查詢(第二次查詢,可以不加scroll的失效時間) 第2+n次訪問(第三次及之后的查詢必須要加scroll的失效時間) 首次訪問 訪問后,會得到部分或全部數(shù)據(jù)和scroll_id. 之后再訪問 注意點 : 用

    2024年02月11日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包