Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用SpringRESTTemplate在elasticsearch中使用日期范围进行滚动和筛选?_Java_Spring_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Java,Spring,elasticsearch" /> elasticsearch,Java,Spring,elasticsearch" />

Java 如何使用SpringRESTTemplate在elasticsearch中使用日期范围进行滚动和筛选?

Java 如何使用SpringRESTTemplate在elasticsearch中使用日期范围进行滚动和筛选?,java,spring,elasticsearch,Java,Spring,elasticsearch,我正在尝试使用ElasticSearchRESTAPI滚动结果,并根据日期进行过滤。使用cUrl,下面的语句给出了所需的结果: curl -d '{"query":{"range":{"timestamp":{"gte":"2017-01-27T13:23:11"}}}}' "http://127.0.0.1:9201/logs-test*/_search?pretty=true&size=5&scroll=1m" 但是,在使用SpringRestTemplate发出请求时,我

我正在尝试使用ElasticSearchRESTAPI滚动结果,并根据日期进行过滤。使用cUrl,下面的语句给出了所需的结果:

curl -d '{"query":{"range":{"timestamp":{"gte":"2017-01-27T13:23:11"}}}}' "http://127.0.0.1:9201/logs-test*/_search?pretty=true&size=5&scroll=1m"
但是,在使用SpringRestTemplate发出请求时,我无法获得相同的行为,因为我得到了所有结果,并且没有应用任何过滤。这是我的Java代码中的内容:

// content type
List<MediaType> acceptableMediaTypes = new ArrayList<MediaType>();
acceptableMediaTypes.add(MediaType.APPLICATION_JSON);
// header
HttpHeaders headers = new HttpHeaders();
headers.setAccept(acceptableMediaTypes);         
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
String body = "{\"query\":{\"range\":{\"timestamp\":{\"gte\":\""+ sdf.format(dateObject) +"\"}}}}";
HttpEntity<String> entity = new HttpEntity<String>(body, headers);
// request
ResponseEntity<String> result =
                restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
//内容类型
List acceptableMediaTypes=new ArrayList();
acceptableMediaTypes.add(MediaType.APPLICATION_JSON);
//标题
HttpHeaders=新的HttpHeaders();
headers.setAccept(acceptableMediaTypes);
SimpleDataFormat sdf=新的SimpleDataFormat(“yyyy-MM-dd'T:HH:MM:ss”);
字符串正文=“{\'query\':{\'range\':{\'timestamp\':{\'gte\':\”“+sdf.format(dateObject)+“\”}”;
HttpEntity实体=新的HttpEntity(主体、标题);
//请求
响应结果=
交换(url,HttpMethod.GET,entity,String.class);

知道我在这里遗漏了什么吗?

如果使用
HttpMethod.POST
会发生什么?谢谢你,Val,在这种情况下,Elasticsearch似乎同时接受GET和POST请求。我现在让它工作了。是的,但在发送有效载荷时使用POST是一个很好的实践。