如何以JSON格式获取SolrJ建议输出或将响应转换为POJO

时间:2015-10-26 09:09:44

标签: java solr solrj

我是Solr / SolrJ的新手。我想得到我的查询建议,为此我创建了一个名为“suggest”的请求处理程序(我使用以下链接作为参考:Suggester#LookupImplementations)。它提供了正确的输出,但是在bean格式中,即使我提供了参数:query.set(“wt”,“json”)。我需要将查询的输出转发给客户端应用程序。如何以JSON格式获取响应或如何在某些POJO中转换响应。当我使用默认请求处理程序即“select”时,我能够成功地执行此操作,它提供了一个响应,我可以将其转换为POJO,因为它包含我在Solr模式中的所有相同字段。如果您需要任何其他信息,请与我们联系。提前谢谢。

1 个答案:

答案 0 :(得分:0)

将您的建议处理程序添加到选择请求处理程序,然后从那里开始。您需要在solrconfig.xml中执行此操作,配置将如下所示:

<requestHandler name="/select" class="solr.SearchHandler">
    <!-- default values for query parameters can be specified, these
         will be overridden by parameters in the request
      -->
    <lst name="defaults">
      <str name="echoParams">explicit</str>
      <int name="rows">10</int>
      <str name="df">dflt</str>
      <str name="spellcheck">true</str>
      <str name="spellcheck.dictionary">suggest</str>
      <str name="spellcheck.count">3</str>
    </lst>
    <arr name="last-components">
        <str>suggest</str>
    </arr>
  </requestHandler>

<searchComponent class="solr.SpellCheckComponent" name="suggest">
    <str name="queryAnalyzerFieldType">spellcheck</str>
    <lst name="spellchecker">
      <str name="name">suggest</str>    
      <str name="field">spellcheck</str>
      <str name="classname">solr.DirectSolrSpellChecker</str>
      <int name="minPrefix">1</int>
      <int name="minQueryLength">3</int>
      <int name="maxEdits">2</int>
      <int name="maxInspections">3</int>
      <int name="minQueryLength">3</int>
      <float name="maxQueryFrequency">0.01</float>
      <float name="thresholdTokenFrequency">.00001</float>
      <float name="accuracy">0.5</float>
    </lst>
  </searchComponent>