弹性搜索查询过滤器

时间:2016-04-05 15:25:45

标签: sql elasticsearch

我是弹性搜索的新手。

如何将以下SQL语句转换为弹性搜索查询?

select sum(totaldevicecount),datasource from
(select distinct oskey,custkey,productkey,
timekey,totaldevicecount,datasource from es_reporting_data_new) 
group by datasource;

由于

4 个答案:

答案 0 :(得分:1)

将查询简化到下面

return average;

ES查询应为

select sum(totaldevicecount),datasource from es_reporting_data_new group by datasource;

有关更多详细信息,请参见Elastic Search Sum aggregation with group by and where condition

答案 1 :(得分:0)

如果我没记错的话,

用于查询不同的,用于groupBy的过滤器和用于嵌套选择和求和的聚合。

答案 2 :(得分:0)

已经提供了答案。我会加点额外的。 我强烈建议您阅读弹性文档,假设您需要转换许多这样的查询。 由于弹性查询参数不同于sql。因此,深入理解弹性查询参数将帮助您在可能的情况下转换SQL查询。

答案 3 :(得分:0)

Logstash 输入支持 JDBC 输入。 ELK 支持执行查询和加载结果集的一种方法。您可以直接将查询或首选视图用于更大的查询。您的输出将被直接摄取到 ELK 中。 https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html

另外一种方式,如果你想查询索引,你可以直接在开发工具中编写查询,如下所示:

POST _xpack/sql?format=txt
{
  "query":"DESCRIBE \"indice-name-*\""
}

POST _xpack/sql
{
  "query":"Select data1, data2 from \"indice-name-*\" where data1 = 'ABC' and ID = '11223333'"
}