go - ElasticSearch 上特定搜索类型的分页

标签 go elasticsearch elasticsearch-6

我们目前正在使用 ElasticSearch 6.7,并且有大量数据使一些请求花费了太多时间。 为了避免这个问题,我们想在我们对 elasticsearch 的研究中设置分页。问题是我无法将 ES 提出的一种分页方法放在已经存在的不同请求上。 例如,此请求包含不同的聚合和查询: https://github.com/trackit/trackit/blob/master/usageReports/lambda/es_request_constructor.go#L61-L75 此外,在收集信息后对结果进行排序。

我尝试设置 Search After 方法以及使用 fromsize 的分页形式。 滚动不适用于聚合,复合聚合不接受查询。

那么,在 ElasticSearch 中结合其他请求类型进行分页有什么好的方法以及如何使用上面的示例进行分页?

最佳答案

composite aggregation doesn't accept query

它确实接受查询。在下面的示例中,结果是根据 play_name 过滤的。聚合仅应用于查询结果,并且可以使用 after 选项对其进行分页。

{
    "query": {
        "term": {
            "play_name": "A Winters Tale"
        }
    },
    "size": 0,
    "aggs": {
        "speaker": {
            "composite": {
                "after": {
                    "product": "FLORIZEL"
                },
                "sources": [
                    {
                        "product": {
                            "terms": {
                                "field": "speaker"
                            }
                        }
                    }
                ]
            },
            "aggs": {
                "speech_number": {
                    "terms": {
                        "field": "speech_number"
                    },
                    "aggs": {
                        "line_id": {
                            "terms": {
                                "field": "line_id"
                            }
                        }
                    }
                }
            }
        }
    }
}

关于go - ElasticSearch 上特定搜索类型的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57521252/

相关文章:

loops - 是否可以从外部功能停止股票行情/股票报价?

unix - vm.max_map_count和mmapfs

python - 在elasticsearch中查询一个空字符串

elasticsearch - 从Elasticsearch token 中删除数字

elasticsearch - 创建过程中具有 bool 类型的多字段的doc失败

elasticsearch - Elasticsearch “match_phrase”查询和 “fuzzy”查询-可以结合使用

Go 程序内存消耗在 Windows Server 2016 上不断增加

Firebase 推送通知在发送到设备组 token 时仅显示 "from"

Golang 服务静态文件,请解释这 3 行代码中发生了什么

Elasticsearch - 模拟外键行为