弹性搜索使用休息查询

时间:2015-06-27 13:40:21

标签: java rest elasticsearch

我正在尝试使用不提供聚合结果的rest调用在弹性搜索中执行以下查询。但是如果我在elasticsearch浏览器中执行相同的查询,则会提供聚合结果。

查询:

{ "aggregations": { "by_salary": { "terms": { "field": "salary" } } } }

休息电话:

http://localhost:9200/tcx_transaction/_search?query={ "aggregations": { "by_salary": { "terms": { "field": "salary" } } } }

结果:

"aggregations": {
    "by_salary": {
        "doc_count_error_upper_bound": 0,
        "sum_other_doc_count": 0,
        "buckets": [
            {
                "key": "manager",
                "doc_count": 39420
            }
            ,
            {
                "key": "developer",
                "doc_count": 13140
            }
            ,
            {
                "key": "HR",
                "doc_count": 4380
            }
        ]
    }
}

2 个答案:

答案 0 :(得分:0)

您滥用REST界面。看一下parameters allowed for URI searchingquery不是其中之一。 q仅适用于非常special type of query

正如提到的pickypg,你设置为query的内容应该是HTTP POST主体的一部分。

答案 1 :(得分:0)

尝试安装" curl"然后,从shell:

curl -XPOST 'http://localhost:9200/tcx_transaction/_search' -d 
'{ "aggregations": { "by_salary": { "terms": { "field": "salary" } } } }'