我在我的java项目中使用弹性搜索2.3版本。我想为弹性搜索执行以下sql查询 -
select fileName from (select distinct fileName from explore_object_metadata order by original_size desc)where rownum <=10
为此我试试 -
client.prepareSearch()
.setIndices()
.setTypes(getType())
.addSort(fieldSort("sourceSize").order(DESC))
.setScroll(new TimeValue(ES_TIMEOUT_MS))
.setSize(10);
但是它多次以重复的fileName降序给出了10个结果。如何获得具有唯一文件名的前10条记录,并按弹性搜索的大小按降序排序。
答案 0 :(得分:1)
获取上述查询的Sense查询是 -
{
"aggs": {
"id1_count": {
"terms": { "field": "empname" ,
"order": {
"Max_Marks": "desc"
}
},
"aggs": {
"Max_Marks": {
"max": {
"field": "marks"
}
},
"min_marks":{
"min":{
"field":"marks"
}
}
}