2011-11-29 132 views
5

是否可以突出顯示整個查詢條件? F.E.當我問「美國」我想:Solr - 高亮查詢短語

<em>United States</em> 

,而不是:

<em>United</em> <em>States</em> 

我搜索整個互聯網的答案,使用HL的所有組合。 mergeContiguous,hl.usePhrasesHighlighterhl.highlightMultiTerm參數仍然無法使其工作。

我的查詢是:

http://localhost:8983/solandra/idxPosts.proj350_139/select?q=post_text:"Janusz Palikot"&hl=true&hl.fl=post_text&hl.mergeContiguous=true&hl.usePhrasesHighlighter=true&hl.highlightMultiTerm=true 

的答案是:

... 
<arr name="post_text"><str>Tag: <em>janusz</em> <em>palikot</em> - Sowiniec: "Sowiniec"</str></arr> 
... 

我 「POST_TEXT」 字段是:

<field name="post_text" type="text" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true" required="true" /> 

我的 「文本」 的類型是:

<fieldType name="text" class="solr.TextField"> 
    <analyzer type="index"> 
     <tokenizer class="solr.StandardTokenizerFactory" /> 
     <filter class="solr.TrimFilterFactory" /> 
     <filter class="solr.LowerCaseFilterFactory" /> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_pl.txt" /> 
     <filter class="solr.ReversedWildcardFilterFactory" /> 
    </analyzer> 
    <analyzer type="query"> 
     <tokenizer class="solr.StandardTokenizerFactory" /> 
     <filter class="solr.TrimFilterFactory" /> 
     <filter class="solr.LowerCaseFilterFactory" /> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_pl.txt" /> 
    </analyzer> 
</fieldType> 

我還試圖用FastVectorHighlighterhl.useFastVectorHighlighter =真,但遇到了一個錯誤:

Problem accessing /solandra/idxPosts.proj350_139/select. Reason: 

    -6 

java.lang.ArrayIndexOutOfBoundsException: -6 
    at lucandra.TermFreqVector.getOffsets(TermFreqVector.java:224) 
    at org.apache.lucene.search.vectorhighlight.FieldTermStack.<init>(FieldTermStack.java:100) 
    at org.apache.lucene.search.vectorhighlight.FastVectorHighlighter.getFieldFragList(FastVectorHighlighter.java:175) 
    at org.apache.lucene.search.vectorhighlight.FastVectorHighlighter.getBestFragments(FastVectorHighlighter.java:166) 
    at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingByFastVectorHighlighter(DefaultSolrHighlighter.java:509) 
    at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlighting(DefaultSolrHighlighter.java:376) 
    at org.apache.solr.handler.component.HighlightComponent.process(HighlightComponent.java:116) 
    at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:194) 
    ... 

你能幫助我嗎?

+0

您是否曾經找到過在Solr結果中標記整個短語(而且只有那個)的方法? ...我知道這是幾年後,但我仍然無法找到一個工作的答案 – mibm

回答

7

對於短語突出顯示,有一個Jira仍在等待通過Solr代碼。

-1

Chech solr doc爲此,有參數hl,設置爲true。