Closed imqishi closed 6 years ago
Sorry, not yet !
OK~ Thank you~
SELECT /*! USE_SCROLL(100,30000)*/ firstname , balance FROM accounts
SELECT /*! USE_SCROLL("DnF1ZXJ5VGhlbkZldGNoBQAAAAAAAAABFklUS2VfQnVIU2k2U3h4UUVKM1d4ZFEAAAAAAAAAAhZJVEtlX0J1SFNpNlN4eFFFSjNXeGRRAAAAAAAAAAMWSVRLZV9CdUhTaTZTeHhRRUozV3hkUQAAAAAAAAAEFklUS2VfQnVIU2k2U3h4UUVKM1d4ZFEAAAAAAAAABRZJVEtlX0J1SFNpNlN4eFFFSjNXeGRR" ,30000)*/ firstname , balance FROM accounts
@shi-yuan 程序中使用SQL查询,结果集中如何拿到scroll id呢,我看了一下返回字段只有_source中的字段和 _id,没有返回_scroll_id字段啊
用jdbc的话,直接:
select /*! USE_SCROLL*/ gender,lastname,age,_scroll_id from elasticsearch-sql_test_index_account where lastname='Heath'
用/! USE_SCROLL/的话没有指定scroll id存活时间,而且如果要获取下一批次呢?也没有提供上一批次的scroll id
可以指定存活时间,30000就是存活时间(单位毫秒):
SELECT /*! USE_SCROLL(100,30000)*/ firstname , balance FROM accounts
SELECT /*! USE_SCROLL("DnF1ZXJ5VGhlbkZldGNoBQAAAAAAAAABFklUS2VfQnVIU2k2U3h4UUVKM1d4ZFEAAAAAAAAAAhZJVEtlX0J1SFNpNlN4eFFFSjNXeGRRAAAAAAAAAAMWSVRLZV9CdUhTaTZTeHhRRUozV3hkUQAAAAAAAAAEFklUS2VfQnVIU2k2U3h4UUVKM1d4ZFEAAAAAAAAABRZJVEtlX0J1SFNpNlN4eFFFSjNXeGRR" ,30000)*/ firstname , balance FROM accounts
这个是有问题的,第二次返回的scrollid和第一次返回的scrollid是一样的,然后第三次查询就会报错 @shi-yuan
scrollid不一定会每次都变的,本地测试,是可以一直查的
可以指定存活时间,30000就是存活时间(单位毫秒):
SELECT /*! USE_SCROLL(100,30000)*/ firstname , balance FROM accounts SELECT /*! USE_SCROLL("DnF1ZXJ5VGhlbkZldGNoBQAAAAAAAAABFklUS2VfQnVIU2k2U3h4UUVKM1d4ZFEAAAAAAAAAAhZJVEtlX0J1SFNpNlN4eFFFSjNXeGRRAAAAAAAAAAMWSVRLZV9CdUhTaTZTeHhRRUozV3hkUQAAAAAAAAAEFklUS2VfQnVIU2k2U3h4UUVKM1d4ZFEAAAAAAAAABRZJVEtlX0J1SFNpNlN4eFFFSjNXeGRR" ,30000)*/ firstname , balance FROM accounts
使用jdbc怎么拿到这个scrollid了,没看到返回
用jdbc的话,直接:
select /*! USE_SCROLL*/ gender,lastname,age,_scroll_id from elasticsearch-sql_test_index_account where lastname='Heath'
带上_scroll_id
Well, I read the controller.js and find that it seems the first fetch we got a scroll_id and following data is got by raw curl request... I just want to check if there's a method to use sql when fetch following data, or I will follow your code