【问题标题】:Does SolrJ support string arrays?SolrJ 是否支持字符串数组?
【发布时间】:2014-09-10 09:30:05
【问题描述】:

我的 CMS 添加了一个具有以下定义的 Solr 动态字段:

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

【问题讨论】:

    标签: solr solrj


    【解决方案1】:

    使用.getFieldValues() 代替.getFieldValue()。第一个将为您提供一个 Collection,您可以对其进行迭代以获取该字段的所有可用值。我猜你看到的表示是在字段上作为列表调用的 .toString() 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多