繁体   English   中英

使用 SolrJ 添加搜索组件

[英]Add search component using SolrJ

当我执行代码时

SolrJsonRequest rq = new SolrJsonRequest(SolrRequest.METHOD.POST, "/config");
String searchComponent = "{\n" +
                "\"add-searchcomponent\":{\n" +
                "    \"name\":\"suggest\",\n" +
                "    \"class\":\"solr.SuggestComponent\",\n" +
                "    \"suggester\":{\n" +
                "        \"name\":\"mySuggester\",\n" +
                "        \"lookupImpl\":\"FuzzyLookupFactory\",\n" +
                "        \"dictionaryImpl\":\"DocumentDictionaryFactory\",\n" +
                "        \"field\":\"suggest\",\n" +
                "        \"suggestAnalyzerFieldType\":\"text_general\"\n" +
                "    }\n" +
                "}\n" +
                "}";

rq.addContentToStream(searchComponent);
rq.process(solrCLient);

我收到错误

{
  "responseHeader":{
    "status":500,
    "QTime":0},
  "WARNING":"This response format is experimental.  It is likely to change in the future.",
  "error":{
    "msg":"Expected key,value separator ':': char=(EOF),position=363 AFTER=''",
    "trace":"org.noggit.JSONParser$ParseException: Expected key,value separator ':': char=(EOF),position=363 AFTER=''\n\tat org.noggit.JSONParser.err(JSONParser.java:452)\n\tat org.noggit.JSONParser.nextEvent(JSONParser.java:1104)\n\tat org.apache.solr.common.util.CommandOperation.parse(CommandOperation.java:292)\n\tat org.apache.solr.common.util.CommandOperation.readCommands(CommandOperation.java:362)\n\tat ....\n",
    "code":500}}

如何解决? 我需要使用 API 添加一个新的搜索组件。

如果我使用RestTemplate发送相同的请求,一切正常。

你能试试下面的代码吗?

SolrJsonRequest rq = new SolrJsonRequest(SolrRequest.METHOD.POST, "/config");
String searchComponent = "{\"add-searchcomponent\":{\"name\":\"suggest\",\"class\":\"solr.SuggestComponent\",\"suggester\":{\"name\":\"mySuggester\",\"lookupImpl\":\"FuzzyLookupFactory\",\"dictionaryImpl\":\"DocumentDictionaryFactory\",\"field\":\"suggest\",\"suggestAnalyzerFieldType\":\"text_general\"}}}";

rq.addContentToStream(searchComponent);
rq.process(solrCLient);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM