我正在尝试根据使用映射查询的一组字段动态构建聚合。 这是代码。
$(document).ready(function(){
var query = {
aggs:{
sum_of_too_many_tries:{
sum:{
field:"reason.too_many_tries"
}
}
}
};
$.ajax({
url: "http://10.138.16.125:9200/log/blocks/_mapping",
type: "get",
async: false,
crossDomain: true,
success: function(data) {
var fields = Object.keys(data.log.mappings.blocks.properties.reasons.properties);
$.ajax({
url: "http://10.138.16.125:9200/log/blocks/_search",
crossDomain: true,
async: false,
type: "get",
dataType: "json",
data: JSON.stringify(query),
success: function(response) {
$("#dump").append(var_dump(response));
}
});
}
});
});
当我执行查询时,它会正常返回命中数,而不会进行聚合。我做错了什么?
如果您需要更多代码,请询问。
答案 0 :(得分:2)
您需要将查询发送为POST而不是GET。 当您将其作为GET发送时,虽然您正在使用_search API,但不会考虑查询部分。因此,您只需从索引中获取前N个文档。