我从4.4.1KibanaElasticsearch做一个查询,看起来像这样:
{
"size": 0,
"query": {
"filtered": {
"query": {
"query_string": {
"query": "FALK0911622560T",
"analyze_wildcard": true
}
},
"filter": {
"bool": {
"must": [
{
"range": {
"@timestamp": {
"gte": 1438290000000,
"lte": 1440968400000,
"format": "epoch_millis"
}
}
}
],
"must_not": []
}
}
}
},
"aggs": {
"2": {
"date_histogram": {
"field": "@timestamp",
"interval": "1w",
"time_zone": "Europe/Helsinki",
"min_doc_count": 1,
"extended_bounds": {
"min": 1438290000000,
"max": 1440968400000
}
},
"aggs": {
"1": {
"percentiles": {
"field": "Quantity",
"percents": [
50
]
}
}
}
}
}
}
这段代码将返回给定时间间隔内“ProductCode”=FALK091162560T”的所有文档。
我用Elasticsearch Java API尝试了同样的方法,代码如下:
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery().must(QueryBuilders.matchQuery(matchQueryKey,matchQueryValue));
SearchResponse response = client.prepareSearch(indexName)
.setTypes(indexTypeName)
.setQuery(boolQueryBuilder)
.setSize(100)
.addAggregation(AggregationBuilders
.dateHistogram("myHistogram")
.field("@timestamp")
.interval(DateHistogramInterval.WEEK)
.timeZone("Europe/Helsinki")
.minDocCount(1)
.extendedBounds(1438290000000L, 1440968400000L))
.addFields(fieldsOfInterest)
.execute()
.actionGet();
response.getAggregations();
但我得到了索引中所有“ProductCode”=FALK091162560T的文档。
在给定的时间内,我应该只有5份回复文件。getAgregations()因为我将间隔设置为周。
Elasticsearch中的文档如下所示:
{
"_index": "warehouse-550",
"_type": "core2",
"_id": "AVOKCqQ68h4KkDGZvk6b",
"_score": null,
"_source": {
"message": "5,550,67.01,FALK0911622560T,2015-07-31;08:00:00.000\r",
"@version": "1",
"@timestamp": "2015-07-31T06:00:00.000Z",
"path": "D:/Programs/Logstash/x_testingLocally/processed-stocklevels-550-25200931072015.csv",
"host": "EVO385",
"type": "core2",
"Quantity": 5,
"Warehouse": "550",
"Price": 67.01,
"ProductCode": "FALK0911622560T",
"Timestamp": "2015-07-31;08:00:00.000"
},
"fields": {
"@timestamp": [
1438322400000
]
},
"highlight": {
"ProductCode": [
"@kibana-highlighted-field@FALK0911622560T@/kibana-highlighted-field@"
],
"message": [
"5,550,67.01,@kibana-highlighted-field@FALK0911622560T@/kibana-highlighted-field@,2015-07-31;08:00:00.000\r"
]
},
"sort": [
1438322400000
]
}
请帮忙。谢谢你。
您没有添加范围查询
。将您的boolQueryBuilder
更改为以下内容:
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery().must(QueryBuilders.matchQuery(matchQueryKey,matchQueryValue)).must(QueryBuilders.rangeQuery("@timestamp").gte(fromValue).lte(toValue));
您可以使用以下方法获取桶:
InternalDateHistogram histogram = searchResponse.getAggregations().getAsMap().get(aggregation_name);
List bucketList = histogram?.getBuckets()
我试图在我的本地开发机器上安装graylog2服务器,但在elasticsearch设置中遇到了问题。 我的elasticsearch作为一项服务安装在我的dev机器上运行的流浪机器上。因此,我的elasticsearch没有安装在127.0.0.1中,而是安装在192.168.50.4(vagrant机器的ip)中,我有从vagrant机器转发的端口9200,但graylog2服务器似乎找不到它
我试图集成elasticsearch与生产,但得到以下例外。jvm我在两个服务器1.7使用。0_40 2015-01-12 21:29:06调试netty:94-[Whitemane,Aelfyre]已连接到节点[[#transport#-1][inet[/xxx.xxx.xx.xxx:9300]]2015-01-12 21:29:06警告netty:114-[Whitemane,Aelfyre]
我有以下场景。我需要在Android上有一个嵌入式数据库(nosql),我在服务器上有一个主数据库(理想情况下应该是nosql数据库)。两者之间需要同步。所有来自移动端的查询都将转到迭代数据库。我们有不同的选项:1)在移动端使用couchDB,同时在服务器端使用couchDB,2)在移动端使用couchDB,在服务器端使用Mongodb,3)在移动端使用sqlLite,在服务器端使用Mongodb
问题内容: 我正在尝试建立一个PHP网站,并且想要测试我的PHP文件而不将其上传到主机。在上载它们之前,基本上在我自己的机器上对其进行测试。我怎么做? 问题答案: 安装并运行XAMPP:http : //www.apachefriends.org/en/xampp.html
我有一个centos机器/服务器,我想在其中运行多个docker容器实例,其中有docker-machines和virtualbox驱动程序,用于测试目的。这是可行的吗? 我有一张最新Centos7的docker图像。然后我跑了
问题内容: 背景 我正在尝试将条纹付款集成到我的网站中。我需要使用我的专用条纹密钥创建一个条纹用户。我将此密钥存储在服务器上,并调用服务器方法来创建用户。也许还有另一种方法可以做到这一点? 我的尝试和结果 我一直在使用相同的客户端代码和不同的服务器代码。所有尝试都会立即在客户端的console.log(…)上给出undefined,但在服务器的console.log(…)上给出正确的响应: 我也尝