我正在使用Java API。我想知道如何只获取特定字段。我在ElasticSearch Head插件中尝试过这个查询:
{"fields": ["name"],"query": { "match_all": {} }}
它在工作。现在,请帮助我使用Java API编写它。
等效的SQL查询将是:
select name from user;
答案 0 :(得分:0)
如果您已经有了查询,那么您需要做的就是:
SearchRequest sr = new SearchRequest("your_index");
sr.source("{\"fields\": [\"name\"],\"query\": { \"match_all\": {} }}");
ActionFuture<SearchResponse> res = client.search(sr);
SearchHits hits = res.get().getHits();
您还可以查看SearchRequestBuilder来帮助构建请求,但对我来说,更容易在其他地方构建查询,然后像这样插入它。
如果您不知道如何连接java client
,请参阅http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/client.html
答案 1 :(得分:0)
在Java api中使用匹配所有查询..
QueryBuilder qb = QueryBuilders.matchAllQuery();
参考http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/query-dsl-queries.html
我创建了一个git hub存储库。请参阅使用java客户端。https://github.com/sidharthancr/elasticsearch-java-client。
它有帮助..!