SOLRJ wiki は、あなたが望むことをする例を示しています:
https://wiki.apache.org/solr/Solrj#Reading_Data_from_Solr
基本的:
QueryResponse rsp = server.query( query );
SolrDocumentList docs = rsp.getResults();
List<Item> beans = rsp.getBeans(Item.class);
編集:
以下のコメントに基づいて、必要なのはSOLR応答の非ループ変換(関数型言語のマップ関数など)であるように見えます。Google の guava ライブラリは、このようなものを提供します。以下の例では、SOLR 応答にリストを返す「名前」フィールドがあると想定しています。
QueryResponse rsp = server.query(query);
SolrDocumentList docs = rsp.getResults();
List<String> names = Lists.transform(docs, new Function<String,SolrDocument>() {
@Override
public String apply(SolrDocument d) {
return (String)d.get("name");
}
});
残念ながら、Java はこのスタイルのプログラミングをあまりサポートしていないため、関数型のアプローチは、単純なループよりも冗長 (そしておそらく明確ではない) になります。
QueryResponse rsp = server.query(query);
SolrDocumentList docs = rs.getResults();
List<String> names = new ArrayList<String>();
for (SolrDocument d : docs) names.add(d.get("name"));