SolrJ是否支持字符串数组?
问题描述:
我有我的CMS添加这个定义Solr的充满活力的领域:SolrJ是否支持字符串数组?
<dynamicField name="*_path" type="string" indexed="true" stored="true" multiValued="true"/>
当我在浏览器中一个普通的GET电话,我得到这样的:
"classification_parent_path":
[
"tag:geo.example.no,2014:Europa tag:geo.example.no,2014:Skandinavia",
"tag:geo.example.no,2014:Europa tag:geo.example.no,2014:Skandinavia tag:geo.example.no,2014:Norge tag:geo.example.no,2014:S%C3%B8rlandet",
"tag:geo.example.no,2014:Europa tag:geo.example.no,2014:Skandinavia tag:geo.example.no,2014:Norge tag:geo.example.no,2014:Nord-Norge"
]
那就是如何我想要它。然而,当我做SolrJ同样的要求,我得到这个:
[tag:geo.example.no,2014:Europa tag:geo.example.no,2014:Skandinavia, tag:geo.example.no,2014:Europa tag:geo.example.no,2014:Skandinavia tag:geo.example.no,2014:Norge tag:geo.example.no,2014:S%C3%B8rlandet, tag:geo.example.no,2014:Europa tag:geo.example.no,2014:Skandinavia tag:geo.example.no,2014:Norge tag:geo.example.no,2014:Nord-Norge]
唉,你可以看到,报价都不见了,结果在一个长字符串中给出的,所以我不知道哪个标签属于哪个数组项。 SolrJ不支持简单的字符串数组吗?
的SolrJ的要求很简单,看起来像这样:
public SolrDocumentList getSearchResults(String queryParam) {
SolrQuery query = new SolrQuery(queryParam);
QueryResponse response = null;
try {
response = SolrServer.solr.query(query);
} catch (SolrServerException e) {
logger.log(Level.ERROR,
"Error while running query " + query +
"on Solr server instance on " + SolrServer.solr.getBaseURL(), e);
}
return response.getResults();
}
答
使用.getFieldValues()
而不是.getFieldValue()
。第一个会给你一个集合,你可以迭代获取该字段的所有可用值。我猜你所看到的表示方法是在该字段上以列表形式调用的.toString()
方法。