如何在java / solrj中解析Solr Analysis请求的响应?

时间:2017-10-09 14:22:22

标签: java solr solrj

我有一个java程序在solr服务器中发出请求。我创建了一个触发solr分析服务的查询:

BackoffSupervisor

我回来的回答是这样的:

maxRetries

哪个不是有效的json。我想解析它并得到文本,即“测试”,“测试”。

我只能通过以下方式检索分析部分:

SupervisorStrategy

这是一个org.apache.solr.common.util.SimpleOrderedMap对象。

有什么想法吗?提前谢谢。

2 个答案:

答案 0 :(得分:2)

我终于使用了另一种解决方案。使用http请求:

http://localhost:8983/solr/docs/analysis/field?wt=json&analysis.showmatch=true&analysis.fieldvalue={custom}&analysis.fieldtype={custom}

我以有效的json格式返回结果。

答案 1 :(得分:1)

基本上,它是Solr的罪,因为你提到它不是有效的json,但它是Solr a NamedList中调用的字符串表示(SimpleOrderedMap是NamedList的子类)

  

一个简单的容器类,用于对名称/值的有序列表进行建模   对。与地图不同:

     
      
  • 姓名可能会重复
  •   
  • 维持元素顺序
  •   
  • 可以通过数字索引
  • 访问元素   
  • 名称和值都可以为空

         

    NamedList按元素编号提供快速访问,但不是按名称提供。

  •   

不幸的是,没有内置支持转换NamedList,所以,你必须编写自定义Java代码,从NamedList中提取所需的属性

另一种可能性是使用FieldAnalysisRequest,它将返回FieldAnalysisResponse,其中包含以下方法:

getFieldNameAnalysis(String fieldName)

将为您提供FieldAnalysisResponse.Analysis

从两种可能的解决方案中,我会推荐后者,因为它将更容易掌握和维护。