我在我的应用程序中使用ajax切换到POST搜索,因此我可以开始使用日期范围。然而,似乎无论我发布什么,它都会在我的索引中返回前10个结果。真正的结果在30k范围内。
amplify.request.define("searchPostRequest", "ajax", {
url: "http://leServer:9200/people/person/_search",
type: "POST",
dataType: 'jsonp',
contentType: 'application/json'
});
self.advancedSearchPostQuery = {
query: {
term: {
locationNumber:479
}
}
};
console.log(self.advancedSearchPostQuery);
amplify.request({
resourceId: "searchPostRequest",
data: JSON.stringify(self.advancedSearchPostQuery),
success: function (data) {
console.log(data.hits.hits.length);
}
});
答案 0 :(得分:0)
如果这是您的实际代码,您的问题可能只是您的问题
advancedSearchPostQuery
无效JSON。
您需要申请报价:
advancedSearchPostQuery = {
"query": {
"term": {
"locationNumber": 479
}
}
}
而且我不确定你是否需要stringify
这个对象,但是我不熟悉amplifyJS,所以如果magnifyjs期待一个对象或一个字符串,那么仔细检查一下。
如果这无法帮助检查从命令行到curl运行时查询是否返回正确的结果。
答案 1 :(得分:0)
在做了更多调试之后,我发现请求是作为GET发送的,即使我已经明确地将其设置为发布。将数据类型移动到json,从jsonp将请求作为POST发送,从而解决了问题。然而,这导致IE中的问题,其中由于请求被发送到另一个域而根本不发送请求。
amplify.request.define("searchPostRequest", "ajax", {
url: "http://leServer:9200/people/person/_search",
type: "POST",
dataType: 'json',
contentType: 'application/json'
});