Solr-突出显示查询短语 [英] Solr - highlight query phrase

查看:121
本文介绍了Solr-突出显示查询短语的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以突出显示整个查询字词? f.e.当我要求美国" 时,我想获得:

Is it possible to highlight whole query terms? f.e. when I ask for "United States" I want to get:

<em>United States</em>

而不是:

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

我已经在整个互联网上搜索了答案,并使用了 hl.mergeContiguous hl.usePhrasesHighlighter hl.highlightMultiTerm 的所有组合参数,仍然无法使其正常工作.

I've searched the whole Internet for an answer, used all combinations of hl.mergeContiguous, hl.usePhrasesHighlighter and hl.highlightMultiTerm parameters and still cannot make it work.

我的查询是:

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"字段为:

my "post_text" field is:

<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>

我还尝试将 FastVectorHighlighter hl.useFastVectorHighlighter = true 一起使用,但遇到错误:

I also tried to use FastVectorHighlighter with hl.useFastVectorHighlighter=true but encountered an error:

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)
    ...

可以帮我吗?

推荐答案

对于突出显示的短语,有一个 Jira 仍在等待直达Solr代码.

For the phrase highlight, there is a Jira stilling waiting to get through to the Solr code.

这篇关于Solr-突出显示查询短语的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆