我正在向SOLR7.5查询一些大对象,并希望在返回它们时将其呈现到浏览器用户界面中。
使用选择请求处理程序时,我可以使用哪些选项来一点一点读取响应
答案 0 :(得分:1)
我认为Solr并没有什么可以做您要问的。
处理此问题的一种方法是仅返回与查询中的条件匹配的文档ID(不包括文档的大部分),然后从客户端异步获取文档的大部分。
答案 1 :(得分:1)
我看错地方了。我只需要阅读我的webAPI fetch()。 response.json()读取完成响应。
response.body.getReader()允许您分块抓取流并从那里解码。
let test = 'https://my-solr7/people/select?q=something'
fetchStream(test);
function fetchStream(uri, params = {}){
const options = {
method: 'GET',
};
var decoder = new TextDecoder();
fetch(uri, options)
.then ()
.then( (response) => {
let read;
const reader = response.body.getReader();
reader.read()
.then(read = (result) => {
if (result.done) return;
console.log(result.value);
let chunk = decoder.decode(result.value || new Uint8Array, {stream: !result.done});
console.log(chunk)
reader.read().then(read);
});
});
}