我想计算一天内每个产品的每个IP访问计数。
一个索引中有三个参数(nginx访问日志):
我知道date\u直方图可以参考https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-datehistogram-aggregation.html .
而count可以指https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-cardinality-aggregation.html#_precision_control.
但我不知道如何组合AGG来构建脚本。
更新:
我使用下面的脚本进行搜索
GET log-nginx_access*/_search
{
"aggs": {
"by_day": {
"date_histogram": {
"field": "timestamp",
"interval": "1d",
"time_zone": "Asia/Shanghai",
"min_doc_count": 1
},
"aggs": {
"by_product": {
"terms": {
"field": "uri_args.product_id",
"size": 100
}
},
"aggs": {
"by_ip": {
"terms": {
"field": "clientip"
}
}
}
}
}
}
}
获取错误:
{
"error": {
"root_cause": [
{
"type": "unknown_named_object_exception",
"reason": "Unknown BaseAggregationBuilder [by_ip]",
"line": 18,
"col": 20
}
],
"type": "unknown_named_object_exception",
"reason": "Unknown BaseAggregationBuilder [by_ip]",
"line": 18,
"col": 20
},
"status": 400
}
也许我们可以使用术语和日期直方图
裁判:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html
GET /{index_name}
{
"aggs": {
"by_day": {
"date_histogram": {
"field" : "timestamp",
"interval" : "day"
},
"aggs": {
"by_product": {
"terms" : {
"field" : "product",
"size": 100 // 100 unique products will be aggregated
},
"aggs": {
"by_ip": {
"terms" : {
"field" : "ip"
}
}
}
}
}
}
}
}
术语
聚合的响应有doc_count
字段,可以满足您的要求。我们必须考虑的一件事是size
参数来定义聚合的唯一性。
问题内容: 我想创建以下查询的等效项- 我使用必须和应该尝试了布尔查询的不同组合,但似乎没有任何效果。能做到吗? 问题答案: 这样的事情怎么样:
问题内容: 我为嵌套对象具有以下索引架构: 数据如下: 现在,如果我做一些简单的查询,例如找到“ isCurrentWorkplace”为true且title.id为259的工作场所,则它可以正常工作: 现在的问题是,我需要组合这些必须子句。例如,我需要找到一条记录,其“ isCurrentWorkplace”为true,“ title.id”为259 AND “ isCurrentWorkpla
问题内容: 供参考的是代码。我正在尝试制作一个记录到elasticsearch的hubot插件,然后使用hubot命令搜索那些日志。 https://gist.github.com/4050748 我正在尝试检索与两个查询匹配的记录。 我期待: 多达50条记录 具有给定用户的记录 最近一小时的记录 我有: 最多10条记录 具有给定用户的记录 从任何时候 我如何在过去一小时内获取带有某些用户名的所有
我有一个elasticsearch索引用于存储关于人的信息。为了找到特定的人,我有一些查询,每个查询都单独工作,但是当我使用Bool查询将它们组合起来时,我会得到一个错误。 其中一个查询是对名称的模糊搜索 另一个查询用于搜索在特定日期范围内出生的人 现在我想组合这两个查询。我的bool查询: 虽然当我单独使用它们时,这两个查询都工作得很好,但当把它们组合起来时,我会得到一个错误。我的索引中有名字是
我需要在一次测试中执行所有3个类,并满足以下要求: > 仅从Class1执行test1和test3。 仅从Class2执行test2。 执行Class3中的所有测试。 2类 3类 为此,我使用了以下testNg xml,但无论我是否包含该组,都将执行Class 1和Class 3中的所有测试。 如果我希望执行上述类文件,请建议TestNg xml文件的正确语法。
我有很多海面温度NetCDF文件,具有相同的纬度和纬度,但时间变量不同。我想尝试通过组合时间变量将其组合成一个NetCDF文件,因为每个NetCDF文件中的时间变量是连续的 有没有更有效的方法?因为在CDO(气候数据操作员)中,我无法进行循环 下面是我使用的文件名的一个例子 带模式sstdas_(年)(月)(dekad)