开发者社区> 问答> 正文

开放搜索用scroll查询Demo进行滚动查询返回错误"code":6019和"code":6008

参考demo文档https://help.aliyun.com/document_detail/52361.html?spm=a2c4g.11186623.2.17.39f93c14HisGbR 第一次调用接口返回成功,并获取了scroll_id 第二次传递scroll_id,执行后返回错误"code":6019和"code":6008

@GetMapping("topic/scroll")
    public String scroll(@RequestParam(value = "scroll_id", required = false) String scroll_id) throws OpenSearchClientException, OpenSearchException {
        Config config = new Config(Lists.newArrayList(appName));
        //设置每页为5条记录
        config.setHits(1);
        config.setSearchFormat(SearchFormat.FULLJSON);
        SearchParams searchParams = new SearchParams(config);
        //searchParams.setQuery("default_topic:'活动'");

        DeepPaging deep =new DeepPaging();
        //添加DeepPaging对象参数
        searchParams.setDeepPaging(deep);
        SearchParamsBuilder paramsBuilder = SearchParamsBuilder.create(searchParams);

        SearchResult searchResult;
        String result = null;
        JSONObject obj = null;
        //第一次执行不返回数据,主要返回scroll_id值,第二次调用查询时设置scroll_id
        if (StringUtils.isEmpty(scroll_id)) {
            searchResult = searcherClient.execute(paramsBuilder);
            result = searchResult.getResult();
            obj = new JSONObject(result);
            deep.setScrollId(new JSONObject(obj.get("result").toString()).get("scroll_id").toString());
            searchResult = searcherClient.execute(paramsBuilder);
            result = searchResult.getResult();
            obj = new JSONObject(result);
            return obj.get("result").toString();
        }
        deep.setScrollId(scroll_id);
        searchResult = searcherClient.execute(paramsBuilder);
        result = searchResult.getResult();
        log.info(result);
        obj = new JSONObject(result);
        return obj.get("result").toString();
    }

展开
收起
potter.zhu 2020-10-17 16:05:54 629 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
《开放搜索统一召回引擎实践》 立即下载
《开放搜索查询分析服务架构分享》 立即下载
《开放搜索在智能化行业搜索和业务增长领域的应用实践》 立即下载