elasticsearch - 如何在Elasticsearch中编写此复杂查询

标签 elasticsearch

如何获得用Elasticsearch编写的以下复杂查询

select username, count(id), 
  concat(YEAR(postedtime),'-',MONTH(postedtime),'-',DAY(postedtime),' ',HOUR(postedtime)) 
from table 
where username in ("user1", "user2", "user3") 
group by username, 
  concat(YEAR(postedtime),'-',MONTH(postedtime),'-',DAY(postedtime),' ',HOUR(postedtime));

最佳答案

以下是一个应该入门的查询-一些注意事项:

  • 计数自动返回,无需显式
    要求。
  • "size":0防止文档被退回-
    您只会看到汇总。
  • 返回的日期将是纪元
    格式。
  • 您可以将query_string替换为terms查询,或者
    甚至改为使用过滤器-这取决于您的要求。
  • 有2个聚合级别,第一个是用户名,第二个是日期存储区。

  • 编码:
    curl -XGET 'http://localhost:9200/myindex/table/_search?pretty' -d '{
     "size": 0,
     "query":{
        "query_string": { "query":"user1 OR user2 OR user3", "fields": ["username"]}
       },
     "aggs" : {
        "username_agg" : {
          "terms": {"field" : "username"},
          "aggs" : {
              "date_agg": { 
                "date_histogram" : { "field" : "postedtime", "interval" : "hour" } 
              }
           }
        }
      }
    }'
    

    关于elasticsearch - 如何在Elasticsearch中编写此复杂查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29604889/

    相关文章:

    nest - 附件上的此类模糊词在部分单词上不返回任何内容

    elasticsearch - 通过 kibana 进行 Elasticsearch 累积和聚合

    python - Elasticsearch "settings "添加Python模块

    elasticsearch - 根据特定条件在Elasticsearch中建立索引之前过滤掉文档

    elasticsearch - 无法为 ElasticSearch 快照创建存储库

    elasticsearch - 图片不为空时评分-elasticsearch-1.7

    elasticsearch - 如何在ElasticSearch上执行不区分大小写的搜索?

    php - Elasticsearch 找到确切的字符串PHP

    php - FOSElastica嵌套查询

    spring - Elasticsearch API与Spring数据与Logstash