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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用SOLRJ java客户端从SOLR获取列名(字段)?相关的知识,希望对你有一定的参考价值。

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

任何帮助赞赏!

答案

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

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

以上是关于如何使用SOLRJ java客户端从SOLR获取列名(字段)?的主要内容,如果未能解决你的问题,请参考以下文章

使用SolrJ(即java客户端)开发Solr。

使用 solrj 作为客户端从 Solr 中删除索引

我与solr--solrJ

SolrJ 的运用

solr 学习之solrJ

搜索引擎系列十:Solr(solrj 索引API 结构化数据导入)