弹性搜索:如何获取特定字段的所有数据

时间:2014-05-16 14:44:14

标签: elasticsearch

我正在使用Java API。我想知道如何只获取特定字段。我在ElasticSearch Head插件中尝试过这个查询:

{"fields": ["name"],"query": { "match_all": {} }}

它在工作。现在,请帮助我使用Java API编写它。

等效的SQL查询将是:

select name from user;

2 个答案:

答案 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

它有帮助..!