【问题标题】:HTML table containing big data from elasticsearch包含来自 elasticsearch 的大数据的 HTML 表
【发布时间】:2016-11-16 12:52:55
【问题描述】:
我有一个弹性搜索索引,其中包含大约 200 万条记录,我想在 HTML 表中查看这些记录。
我面临的问题是我不想用所有这些数据污染浏览器的内存,而是我想做以下事情:
- 加载表后,查询弹性搜索以查找
总共有多少条记录(这个数字将用于近似滚动条的大小)
- 再次查询以获取前 1000 条记录并将它们显示在表中。
- 修改表格的滚动条给用户的印象是
已加载所有记录
- 一旦用户开始向下滚动,向表中添加更多记录
并删除旧记录(以节省内存)
我需要有关如何设计此系统和可能的实施解决方案的建议。
谢谢
【问题讨论】:
标签:
javascript
elasticsearch
【解决方案1】:
elasticsearch 为其所有查询提供“来自”和“大小”选项。默认情况下,您会获得查询的前 10 个结果,因此您可以设置“from”字段以指定要从结果中的哪个位置开始,并设置“size”字段以指定要检索的文档数量。大致如下:
{
from: 1,
size: 1000,
query: {
"match": {
"text":{
"query": "search_text"
}
}
}
}
将在文档的文本字段中为您提供与“search_text”匹配的前 1000 个文档。您可以在查询中使用变量而不是 1 并不断更新变量并调用查询来执行您所描述的操作。
更新
对于前端检查这个问题:
jQuery load more data on scroll
您必须执行类似的操作,然后将更改的查询放入函数中。