绊脚石乃是进身之阶。

rest client是不是不能拿来搜索数据?

匿名 | 发布于2017年06月23日 | 阅读数:12623

用5.4.2的rest client发现官方给的例子都是put文档的,自己用来试了下_search来搜索数据,直接给报错了。是不是rest client不适合用来进行搜索数据呢?
已邀请:

wangjueying - Java攻城狮-ES爱好者

赞同来自: medcl

我好像知道是啥原因了,光用QueryBuilder组装出来的查询语句没有还得用再套一层到query中去,rest cilent有提提供这样可以直接嵌套出的方法么。以前都是用transprotclient直接连续点出来的一堆。不想自己用stringbuilder拼接

medcl - 今晚打老虎。

赞同来自:

都可以的,错误是什么?

wangjueying - Java攻城狮-ES爱好者

赞同来自:

我是用QueryBuilder组装了个boolBuilder查询然后:
HttpEntity entity = new NStringEntity(boolBuilder.toString(), ContentType.APPLICATION_JSON);
Response response=restClient.performRequest("GET", "/my_index/my_type/_search", Collections.<String, String>emptyMap(),entity);
 
获得报错如下:org.elasticsearch.client.ResponseException: GET http://localhost:9200/my_index/my_type/_search: HTTP/1.1 400 Bad Request
{"error":{"root_cause":[{"type":"parsing_exception","reason":"Unknown key for a START_OBJECT in [bool].","line":2,"col":12}],"type":"parsing_exception","reason":"Unknown key for a START_OBJECT in [bool].","line":2,"col":12},"status":400}
    at org.elasticsearch.client.RestClient$1.completed(RestClient.java:354)
    at org.elasticsearch.client.RestClient$1.completed(RestClient.java:343)
    at org.apache.http.concurrent.BasicFuture.completed(BasicFuture.java:119)
 
(域名都配置好的)

要回复问题请先登录注册