如何使用SOLRJ Java客户端从SOLR获取列名(字段)?

时间:2018-09-25 16:19:04

标签: java solr solrj

我正在使用solrj java客户端从solr读取数据。下面是代码段。

SolrClient Solr = new HttpSolrClient.Builder(solrUrlString+solrCoreName).build();

    // Preparing Solr query
    SolrQuery query = new SolrQuery();
    query.setQuery(searchString);

    // Adding the field to be retrieved

    query.addField("*");
    query.setStart(start);
    query.setRows(rows);

    // Executing the query
    QueryResponse queryResponse = Solr.query(query);
    // Storing the results of the query
    SolrDocumentList docs = queryResponse.getResults();

    Solr.close();

我正在获取数据并使用SolrDocumentList发送回JSON作为输出。

我的输出如下所示

[
{ "id":1,
   "name":"king",
   "address":"US"
},
{ "id":2,
   "name":"Jack",
   "address":"US"
}
]

但是我需要带有列名以及数据作为单独属性的JSON输出。

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

我认为您对Solr的理解存在问题(我可能错了)。

Solr是文档的集合,而不是行,行将始终对每个列至少具有预定义的默认值,但是Solr文档可能对架构中定义的每个字段都具有或不具有值,具体取决于索引逻辑。 因此,您的输出将始终是文档集合,而每个文档都是键值对的集合,并且对于您指定了值的每个文档,只会返回这些键在编制索引时。