SearchRequestBuilder:有没有办法要求返回所有字段?

时间:2016-03-10 17:26:45

标签: java elasticsearch

我正在使用Java API来查询elasticsearch。我正在以这种方式构建查询:

SearchRequestBuilder searchRequestBuilder = client.prepareSearch(index)
            .setQuery(query)
            .addFieldDataField("location")
            .addField("time")
            .addField("name");
SearchResponse resp = searchRequestBuilder.get();
for (SearchHit hit : resp.getHits().getHits()) {
   GeoPoint point = hit.field("location").getValue();
   // ... etc 
}

有没有办法构建请求并获取所有字段而不明确指定它们?看作HTTP接口并不需要你这样做。

1 个答案:

答案 0 :(得分:1)

我不确定您使用的是哪个版本的ES和Java客户端,但根据此javadoc:http://javadoc.kyubu.de/elasticsearch/HEAD/org/elasticsearch/action/search/SearchRequestBuilder.html#addFields(java.lang.String...),如果您未指定任何字段,则将返回文档的完整_source

我要注意的另一件事是javadoc指定必须存储的字段(除非你使用addFieldDataField)。确保它们在映射中没有被标记为忽​​略。