Java:在大型solr响应中获取唯一值

时间:2014-01-04 02:47:35

标签: java json parsing testing solr

我是测试员,我有一份巨大的Solr文件。

我可以在XML或JSon中查看,但我选择了JSON

我正在尝试查看给定字段中有多少个唯一字符串。

 {    "responseHeader": {
    "status": 0,
    "QTime": 0,
    "params": {
        "wt": "json",
        "q": "lr_listing_status_search:pending"
    }
},
"response": {
    "numFound": 21410,
    "start": 0,
    "docs": [
        {
            "m_document_id_exact": "1428937575-565899144",
            "lr_master_listing_id": 565899144,
            "lr_baths": 2,
            "lr_beds": 2,
            "lr_whole_baths": 2,
            "lr_listing_status": ["Pending Continue To Show"],

我有使用org.json将Java代码放入JSON对象的Java代码

  public static void main(String[] args) throws IOException, JSONException {
        JSONObject response = readJsonFromUrl("http://sdsitgn.solr-aprop1.admin.inf:8086/solr/core0/select/?q=lr_listing_status_search:pending&wt=json");
        System.out.println(response.toString());

例如,此lr_listing_status字段有10,000个solr文档。

我想知道例如所有uniques “等待继续展示” “待定” “等待突发事件”

也许有更好的方法? Solrj也许?

1 个答案:

答案 0 :(得分:0)

有一个copyField将lr_listing_status复制到lr_listing_status_facet,并在该字段中使用KeywordAnalyzer(好吧,添加需要添加的任何内容以处理案例规范化等,如果还需要这样做的话)。

然后,您可以通过在lr_listing_status_facet上添加一个方面来获得您想要的内容,方法是将其添加到您的请求中:& facet = true& facet.field = lr_listing_status_facet

查看faceting所提供的所有功能。