我有一个java程序在solr服务器中发出请求。我创建了一个触发solr分析服务的查询:
BackoffSupervisor
我回来的回答是这样的:
maxRetries
哪个不是有效的json。我想解析它并得到文本,即“测试”,“测试”。
我只能通过以下方式检索分析部分:
SupervisorStrategy
这是一个org.apache.solr.common.util.SimpleOrderedMap对象。
有什么想法吗?提前谢谢。
答案 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
从两种可能的解决方案中,我会推荐后者,因为它将更容易掌握和维护。