gpt4 book ai didi

javascript - 我的 elasticquery 中出现错误 - 范围返回错误的请求

转载 作者:行者123 更新时间:2023-11-28 00:37:52 25 4
gpt4 key购买 nike

我有以下函数来进行 Elasticsearch :

$scope.getLocationHistory = function(device, lastTime){

console.log("Device location searching");

query = {
"query": {
"bool": {
"must": [
{ "term": {"deviceId":device} },
{ "match": {"eventType":"Connected"} }
],
"must_not":[
{"query_string": {
"query": "Pong",
"fields": ["data.message"]
}
},
]
}
},
"range" : {
"timestamp" : {
"gt" : "now-1h"
}
},
"filter" : {
"exists" : { "field" : "data.location" }
},
"sort": [{ "timestamp": { "order": "desc" }}]
}

$http.post(databaseLocation+"/canary/_search", query).success(function(data, status, headers, config){
$scope.getMapHistory(data.hits.hits); //Auxiliary function
}).error(function(data, status, headers, config){
console.log(data);
});

}

我是弹性查询的新手,在范围字段中遇到此错误:

POST http://... 400(错误请求)
对象{错误:“SearchPhaseExecutionException[无法执行阶段...arse失败[没有元素[范围]的解析器]];}]”,状态:400}错误:“SearchPhaseExecutionException[无法执行阶段[查询],所有分片失败; ....

可能我把范围字段写错了,但我找到了如何在这个文档上使用它:www.elasticsearch.org/...

我想知道我在查询中做错了什么。

最佳答案

已编辑我只需向范围添加另一个过滤器,它就可以工作,但是如果将范围作为必须参数,性能会更好

    query = {
"query": {
"bool": {
"must": [
{ "range" : { "timestamp" : { "gt" : timeRange }}},
{ "term": {"deviceId":device} },
{ "match": {"eventType":"Connected"} }
],
"must_not":[{
"query_string": {
"query": "Pong",
"fields": ["data.message"]
}
},
]
},

},
"filter": {
"exists" : { "field":"data.location" }
},
"sort": [{ "timestamp": { "order": "desc" }}]
}

关于javascript - 我的 elasticquery 中出现错误 - 范围返回错误的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28288511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com