【发布时间】:2015-08-05 14:13:32
【问题描述】:
我正在尝试使用 count 的 search_type 和从 the npm module 构建的 elasticsearch.angular.js 执行搜索查询。
我可以这样执行查询:
POST /index1/type1/_search?search_type=count
{
"aggs": {
"reviews": {
"nested": {
"path": "reviews"
}
}
}
}
但是当我尝试将查询转换为 .js api 时,我得到一个错误。我的代码如下所示:
var requestObject = {
index:'index1',
type:'type1',
searchType: 'count',
body: {
query:{
aggs: {
reviews: {
nested: {
path: "reviews"
}
}
}
}
};
esClient.search(requestObject)
跟踪如下所示:
console.js:1 DEBUG: 2015-08-04T15:28:59Z
starting request { method: 'POST',
path: '/index1/type1/_search',
body: { aggs: { reviews: [Object] } },
query: { search_type: 'count' } }
对于 elasticsearch 新手来说,这看起来不错,但请求完成时出现错误:ReferenceError: count is not defined。
请问我在这里错过了什么?
【问题讨论】:
-
它可能不相关(虽然永远不知道),但
aggs部分需要是body元素的直接子元素,即不嵌套在query元素内。你能做出改变,然后再试一次看看是否有什么不同吗? -
我很确定这是 JS 错误而不是 ES 错误。你能发布你如何处理
esClient.search()的回复吗? -
@robertkliep 我现在不在电脑前,但我正在使用 promise 语法处理响应。
-
@robertklep:刚刚检查了我的响应处理代码,果然我在控制台记录了一个叫做“计数”的东西。我会在漫长的一天结束时归咎于它,但感谢您的帮助!
标签: javascript angularjs elasticsearch npm