2014-09-10 130 views
0

我有我的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(); 
} 

回答

1

使用.getFieldValues()而不是.getFieldValue()。第一個會給你一個集合,你可以迭代獲取該字段的所有可用值。我猜你所看到的表示方法是在該字段上以列表形式調用的.toString()方法。