我的目标是将所有唯一术语及其md5哈希值存储在数据库中。我有一个100万的文档索引,有大约400000个独特的术语。我在弹性搜索中使用aggregations
得到了这个数字。
GET /dt_index/document/_search
{
"aggregations": {
"my_agg": {
"cardinality": {
"field": "text"
}
}
}
}
我可以使用以下内容获取唯一条款:
GET /dt_matrix/document/_search
{
"aggregations": {
"my_agg": {
"term": {
"field": "text",
"size": 100
}
}
}
}
这给了我10个搜索结果以及100个唯一术语的术语聚合。但是获得约400,000个JSON的JSON将需要内存。就像解析所有搜索结果一样,我们可以使用scan-scroll
。有没有什么方法可以解析所有独特的术语而不加载所有内存?
答案 0 :(得分:0)
您无法扫描滚动聚合结果。相反,您应该在索引时将这些唯一术语索引在单独的索引或类型中,然后对其进行正常分页。
答案 1 :(得分:0)
虽然您无法滚动聚合,但您可以通过添加查询请求来检索更小,更易于管理的子集。例如,您可以请求以字母A开头的所有唯一字词,依此类推。调整查询,直到您对最大子集的大小感到满意为止。