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

问题描述 投票:0回答:1

我正在使用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输出以及作为单独属性的数据。

任何帮助赞赏!

java solr solrj
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.