2014-09-29 3 views
0

Solr 응답의 다중 값 필드 강조 표시와 관련된 문제점이 있습니다. 내 solr 필터 쿼리와 일치하는 다중 값 필드를 강조 표시하려면 어떻게해야합니까? 다음은 지금 CITIES:*DEL*로 쿼리 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> 

에서, SOLR는 단어 DEL을 포함 응답해야 만 반환 그 도시를 강조, 내 문서의 종류이다. 내가 어떻게 이걸 얻을 수 있니?

이 문제를 해결하는 방법에 대한 아이디어 나 제안이 있습니까? 여러분 모두에서 긍정적 인 반응을 찾고

지원 미리 ...

감사 괴짜을 SOLR.

감사합니다, 인 Ashish 슈라 매개 변수 이름에서 알 수 있듯이

+0

당신이 정확한 쿼리를 제공 할 수 있습니까? 그리고 "CITIES"에 사용하는 필드 유형은 무엇입니까? SolrConfig에서 강조 표시 요소는 어떻게 정의됩니까? 방금 한 것처럼 퍼지 검색을 수행하는 Solr 서버 중 하나에서 쿼리를 실행 했으므로 하이라이트를 볼 수 있습니다. 당신은 또한 당신이 당신의 질문에서 얻고있는 정확한 응답을 붙여 넣을 수 있습니까? 어떤 버전의 Solr을 사용하고 있습니까? – jay

+0

친애하는 Jay, 우선 관심을 가져 주셔서 감사합니다. solr 쿼리뿐만 아니라 solr 응답과 함께 solr config 및 highlighter 구성 요소로 내 게시물을 업데이트했습니다. –

답변

0

는 multiValuedSeparatorChar는 단일 문자이어야한다. 이런 예외는 없습니까?

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

그래서 하나의 문자를 사용하는 것이 좋습니다 :

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