我正在使用Jest,一个用于我的Android应用程序的Elasticsearch的Java Http REST客户端。从android我想根据本教程Building a Recipe Search Engine搜索食谱。
使用终端中的简单搜索,例如
curl -XPOST http://192.168.1.47:9200/recipes/recipe/_search -d '{"query": {"match": {"ingredients": "salmon"}}}' | json_pp
给了我正确的结果,使用Jest只需给我所有文件,无论有什么问题。
我在Android中的代码段:
clientConfig = new DroidClientConfig.Builder("http://192.168.1.47:9200").build();
clientFactory = new JestClientFactory();
clientFactory.setDroidClientConfig(clientConfig);
client = clientFactory.getObject();
String query = "{\"query\": {\"match\": {\"ingredients\": \"salmon\"}}}";
Search search = new Search.Builder(query)
.addIndex("recipes")
.addType("recipe")
.build();
try {
SearchResult result = client.execute(search);
Log.d(TAG, result.getJsonObject().toString());
} catch (IOException e) {
e.printStackTrace();
}
问题出在哪里?这就像查询不包含在POST请求的数据中一样。