如何从Elasticsearch中找到最常用的查询?

时间:2019-10-31 23:13:48

标签: elasticsearch

我有一个在AWS Elasticsearch实例上运行的Elasticsearch集群。它已经运行了几个月。我想知道过去几个月来使用最频繁的查询请求。 Elasticsearch是否将所有查询保存在我可以搜索的位置?还是我必须以编程方式保存分析请求?

1 个答案:

答案 0 :(得分:0)

据我所知,Elasticsearch默认不会保存所有查询的记录或频率直方图。但是,有一种方法可以让它记录所有查询,然后将日志发送到某个地方以进行汇总/搜索以获得最佳结果(顺便说一句,您可以将Elasticsearch用于:D)。可悲的是,只有在配置了此功能后,您才能跟踪查询,我怀疑您能否找到最近几个月的历史查询记录。

为此,您将利用Elasticsearch的慢查询日志。 default thresholds设计为仅记录慢速查询,但是如果将这些默认值设置为0s,则Elasticsearch会将 any 查询记录为慢速查询,为您提供所有记录查询。有关详细说明,请参见上面的链接。如何在yaml配置文件中为整个群集进行设置,例如

index.search.slowlog.threshold.fetch.debug: 0s

或使用

为每个索引动态设置
PUT /<my-index-name>/_settings
{
    "index.search.slowlog.threshold.query.debug": "0s"
}

要清除您选择的日志级别并不严格,但是使用debug可以使您以更危险的级别(例如{{ 1}}和info,它们可能会有用。

我不熟悉如何配置AWS Elasticsearch集群,但是由于以上是所有版本中的核心Elasticsearch设置,我知道应该有一种方法。

搜索愉快!