0

我正在为我的 Android 应用程序使用 Jest,这是一个用于 Elasticsearch 的 Java Http REST 客户端。根据本教程构建食谱搜索引擎,我想从 android 搜索食谱。

在使用终端的简单搜索时,例如

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 请求的数据中一样。

4

0 回答 0