簡體   English   中英

在Solr響應中突出顯示多值字段

[英]Highlighting multivalue field in solr response

我有一個與在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的城市。 我怎樣才能做到這一點?

關於如何解決這個問題有什么想法或建議嗎?

尋找所有人的積極回應...

預先感謝您的支持。

問候,Ashish Mishra

如參數名稱所示,multiValuedSeparatorChar應該是單個字符。 你沒有這樣的例外嗎?

null:java.lang.IllegalArgumentException: hl.multiValuedSeparatorChar must be exactly one character.

因此,我建議使用單個字符:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM