2011-11-29 81 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。