Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在solr响应中突出显示多值字段_Solr - Fatal编程技术网

在solr响应中突出显示多值字段

在solr响应中突出显示多值字段,solr,Solr,我有一个问题与突出显示Solr响应中的多值字段有关。如何突出显示与solr筛选器查询匹配的多值字段?以下是我的文件类型 <doc> <str name="id">CAID_332_1003</str> <arr name="lang_spec_labels"> <str>1_Label for UK</str> <str>2_Label for US</str

我有一个问题与突出显示Solr响应中的多值字段有关。如何突出显示与solr筛选器查询匹配的多值字段?以下是我的文件类型

<doc>
    <str name="id">CAID_332_1003</str>
    <arr name="lang_spec_labels">
        <str>1_Label for UK</str>
        <str>2_Label for US</str>
        <str>4_Label for FR</str>
    </arr>
</doc>


#My solr config details

<requestHandler name="/select" class="solr.StandardRequestHandler">
  <lst name="defaults">
   <str name="hl">on</str>
   <str name="hl.fl">lang_spec_labels</str>
   <str name="hl.encoder">html</str>
   <bool name="hl.preserveMulti">false</bool>
   <bool name="hl.useFastVectorHighlighter">true</bool>
   <str name="f.lang_spec_labels.hl.fragsize">100</str>
   <str name="f.lang_spec_labels.hl.alternateField">lang_spec_labels</str>
   <str name="f.lang_spec_labels.hl.maxAlternateFieldLength">750</str>
    <str name="hl.bs.type">SENTENCE</str>
  </lst>
 </requestHandler>

 <searchComponent class="solr.HighlightComponent" name="highlight">
   <highlighting class="org.apache.solr.highlight.PostingsSolrHighlighter">
    <fragmentsBuilder name="default" default="true"   class="solr.highlight.ScoreOrderFragmentsBuilder">
        <lst name="defaults">
          <str name="hl.multiValuedSeparatorChar">##</str>
        </lst>
  </fragmentsBuilder>

  <encoder name="html" class="solr.highlight.HtmlEncoder" />

  <formatter name="html" 
             default="true"
             class="solr.highlight.HtmlFormatter">
    <lst name="defaults">
      <str name="hl.simple.pre"><![CDATA[<em>]]></str>
      <str name="hl.simple.post"><![CDATA[</em>]]></str>
    </lst>
  </formatter>

  </highlighting>
 </searchComponent>

My Solr query like q=lang_spec_labels:(1_*)

My Solr Response
<?xml version="1.0" encoding="UTF-8"?>
<response>

<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">7</int>
</lst>
<result name="response" numFound="1" start="0">
<doc>
<arr name="lang_spec_labels">
  <str>1_Label for UK</str>
  <str>2_Label for US</str>
  <str>4_Label for FR</str>
</arr></doc>
</result>
<lst name="highlighting">
<lst name="CAID_332_1003">
<arr name="lang_spec_labels">
      <str>1&#95;Label&#32;for&#32;UK&#32;2&#95;Label&#32;for&#32;US&#32;4&#95;Label&#32;for&#32;FR</str>
</arr>
</lst>
</lst>
现在查询CITIES:*DEL*,solr突出显示的响应应该只返回单词中包含DEL的城市。我怎样才能做到这一点

关于如何解决这个问题,有什么想法或建议吗

寻找你们所有solr极客的积极回应

提前感谢您的支持

问候,,
Ashish Mishra

如参数名称所示,多值separatorchar应为单个字符。你没有这样的例外吗

null:java.lang.IllegalArgumentException: hl.multiValuedSeparatorChar must be exactly one character.
因此,我建议使用单个字符:

<str name="hl.multiValuedSeparatorChar">#</str>

你能提供准确的查询吗?以及您用于城市的字段类型?如何在SolrConfig中定义突出显示组件?我只是在我的一个Solr服务器上运行了一个查询,像您一样进行模糊搜索,我可以看到亮点。您还可以粘贴从查询中得到的确切响应吗?您使用的是什么版本的Solr?亲爱的Jay,首先感谢您的关注。我已经用solr配置更新了我的帖子,用solr响应和solr查询更新了highlighter组件。