【问题标题】:Parsing response from SOLR解析来自 SOLR 的响应
【发布时间】:2012-05-29 12:41:31
【问题描述】:
{responseHeader={status=0,QTime=0,params={q=ketan,wt=[javabin,javabin],version=2.2}},response={numFound=1,start=0,docs=[SolrDocument[{user_first_name=Ketan, customerid=5,killname=Hockey, areaname=Paud, categoryname=Sports, last_name=Kore, statename=Maharashtra, cityname=Pune, contactno=124555698}]]}}

我已收到此响应 SOLR 并希望从中获取 JSONObject SOlr 文档。 请帮助我如何解析此响应。

【问题讨论】:

    标签: java json solr


    【解决方案1】:

    你提到的字符串是一个json字符串(json是Javascript Object Notation)。尝试使用 java-json lib 对其进行解码。 Here is an example

    【讨论】:

      【解决方案2】:

      您需要使用哈希映射来制作 JSONObject ,solrj 目前不支持 json 格式作为输出

      【讨论】:

        【解决方案3】:

        我发现这篇文章很有用。尽管问这个问题的时候已经很成熟了,但它也可能对其他人有所帮助,因为我遇到了同样的问题。我使用 Google API for JSON - GSON 解决了​​这个问题。

        Solr 给出的响应不是 JSON 格式。我们需要转换它。 我从 solr 检索响应并将其转换为 json 对象。

        原来,我的回答是:

           {docs=[SolrDocument{id=1, uuid=7fe08f79-e184-454d-908f-08b32583a822, packName=Workflow Logger-Pack, packDescription=Workflow Logger-Pack, packAuthor=NetApp, packVersion=1.0.0, packDate=May 22, 2014, 3:10 pm, entityName=[Workflow Logger, Wait, Logging cmd, Test cmd for multiple Parameter Types], entityDescription=[Workflow Logger, Wait Command, Logging command, Test cmd for multiple Parameter Types], entityType=[Workflow, Command, Command, Command], _version_=1468794552324194304}, SolrDocument{id=2, uuid=7fe08f79-e184-454d-908f-08b32583a822, packName=Workflow Logger-Pack New, packDescription=Workflow Logger-Pack, packAuthor=NetApp, packVersion=2.0.0, packDate=May 22, 2014, 3:13 pm, entityName=[Workflow Logger, Wait, Logging cmd, Test cmd for multiple Parameter Types], entityDescription=[Workflow Logger, Wait Command, Logging command, Test cmd for multiple Parameter Types], entityType=[Workflow, Command, Command, Command], _version_=1468794760693022720}, SolrDocument{id=3, uuid=7fe08f79-e184-454d-908f-08b32583a822, packName=Workflow Logger-Packs updated, packDescription=Workflow Logger-Pack, packAuthor=NetApp, packVersion=3.0.0, packDate=May 22, 2014, 3:32 pm, entityName=[Workflow Logger, Wait, Logging cmd, Test cmd for multiple Parameter Types], entityDescription=[Workflow Logger, Wait Command, Logging command, Test cmd for multiple Parameter Types], entityType=[Workflow, Command, Command, Command], _version_=1468795898385399808}, SolrDocument{id=5, uuid=7fe08f79-e184-454d-908f-08b32583a822, packName=Workflow Logger-Pack New, packDescription=Workflow Logger-Pack, packAuthor=NetApp, packVersion=2.0.0, packDate=June 17, 2014, 7:02 am, entityName=[Workflow Logger, Wait, Logging cmd, Test cmd for multiple Parameter Types], entityDescription=[Workflow Logger, Wait Command, Logging command, Test cmd for multiple Parameter Types], entityType=[Workflow, Command, Command, Command], _version_=1471140110510587904}]}
        

        我的代码:

         HttpSolrServer server= new HttpSolrServer("http://localhost:8983/solr");
                server.setParser(new XMLResponseParser());
        
                Gson gson= new Gson();
        
                SolrQuery solrQuery = new SolrQuery();
                solrQuery.setQuery("*:*");
        
                solrQuery.setHighlight(true);
        
                solrQuery.setHighlightRequireFieldMatch(true);
                QueryResponse response= server.query(solrQuery);
                SolrDocumentList docs = response.getResults();
        
                String res= gson.toJson(docs);
                System.out.println(res);
        

        现在,它被转换为 JSON:

        [
          {
            "id": "1",
            "uuid": "7fe08f79-e184-454d-908f-08b32583a822",
            "packName": "Workflow Logger-Pack",
            "packDescription": "Workflow Logger-Pack",
            "packAuthor": "NetApp",
            "packVersion": "1.0.0",
            "packDate": "May 22, 2014, 3:10 pm",
            "entityName": [
              "Workflow Logger",
              "Wait",
              "Logging cmd",
              "Test cmd for multiple Parameter Types"
            ],
            "entityDescription": [
              "Workflow Logger",
              "Wait Command",
              "Logging command",
              "Test cmd for multiple Parameter Types"
            ],
            "entityType": [
              "Workflow",
              "Command",
              "Command",
              "Command"
            ],
            "_version_": 1468794552324194300
          },
          {
            "id": "2",
            "uuid": "7fe08f79-e184-454d-908f-08b32583a822",
            "packName": "Workflow Logger-Pack New",
            "packDescription": "Workflow Logger-Pack",
            "packAuthor": "NetApp",
            "packVersion": "2.0.0",
            "packDate": "May 22, 2014, 3:13 pm",
            "entityName": [
              "Workflow Logger",
              "Wait",
              "Logging cmd",
              "Test cmd for multiple Parameter Types"
            ],
            "entityDescription": [
              "Workflow Logger",
              "Wait Command",
              "Logging command",
              "Test cmd for multiple Parameter Types"
            ],
            "entityType": [
              "Workflow",
              "Command",
              "Command",
              "Command"
            ],
            "_version_": 1468794760693022700
          },
          {
            "id": "3",
            "uuid": "7fe08f79-e184-454d-908f-08b32583a822",
            "packName": "Workflow Logger-Packs updated",
            "packDescription": "Workflow Logger-Pack",
            "packAuthor": "NetApp",
            "packVersion": "3.0.0",
            "packDate": "May 22, 2014, 3:32 pm",
            "entityName": [
              "Workflow Logger",
              "Wait",
              "Logging cmd",
              "Test cmd for multiple Parameter Types"
            ],
            "entityDescription": [
              "Workflow Logger",
              "Wait Command",
              "Logging command",
              "Test cmd for multiple Parameter Types"
            ],
            "entityType": [
              "Workflow",
              "Command",
              "Command",
              "Command"
            ],
            "_version_": 1468795898385399800
          },
          {
            "id": "5",
            "uuid": "7fe08f79-e184-454d-908f-08b32583a822",
            "packName": "Workflow Logger-Pack New",
            "packDescription": "Workflow Logger-Pack",
            "packAuthor": "NetApp",
            "packVersion": "2.0.0",
            "packDate": "June 17, 2014, 7:02 am",
            "entityName": [
              "Workflow Logger",
              "Wait",
              "Logging cmd",
              "Test cmd for multiple Parameter Types"
            ],
            "entityDescription": [
              "Workflow Logger",
              "Wait Command",
              "Logging command",
              "Test cmd for multiple Parameter Types"
            ],
            "entityType": [
              "Workflow",
              "Command",
              "Command",
              "Command"
            ],
            "_version_": 1471140110510588000
          }
        ]
        

        希望对你有帮助。

        【讨论】:

          猜你喜欢
          • 2015-02-26
          • 1970-01-01
          • 2020-01-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-28
          • 2020-06-17
          相关资源
          最近更新 更多