Antonio,
Put the parameter into <requestHandler/> element, rather than
<highlighting/>.
If you are using "standard" reques thandler, set it like this:
<requestHandler name="standard" class="solr.SearchHandler" default="true">
<lst name="defaults">
<str name="echoParams">explicit</str>
<bool name="hl">on</bool>
<int name="hl.snuppets">3</int>
<str name="hl.fl">features</str>
<bool name="hl.usePhraseHighlighter">true</bool>
</lst>
</requestHandler>
Or you can set it directly in your HTTP request:
http://localhost:8983/solr/select?q=something&hl=on&hl.fl=features&hl.usePhraseHighlighter=true
Koji
--
http://www.rondhuit.com/en/
Antonio Calò wrote:
Hi Kaji, many thanks for your suggestion.
Sorry for delay in my feedback.
I've tried to set hl.usePhraseHighlighter=true, but it still not working.
Here my setup:
<highlighting>
<!-- Configure the standard fragmenter -->
<!-- This could most likely be commented out in the "default" case -->
<fragmenter name="gap" class="org.apache.solr.highlight.GapFragmenter">
<lst name="defaults">
<int name="hl.fragsize">100</int>
<bool name="hl.usePhraseHighlighter">true</bool>
<bool name="hl.highlightMultiTerm">true</bool>
</lst>
</fragmenter>
<!-- A regular-expression-based fragmenter (f.i., for sentence
extraction) -->
<fragmenter name="regex"
class="org.apache.solr.highlight.RegexFragmenter" default="true">
<lst name="defaults">
<!-- slightly smaller fragsizes work better because of slop -->
<int name="hl.fragsize">100</int>
<!-- allow 50% slop on fragment sizes -->
<float name="hl.regex.slop">0.5</float>
<!-- a basic sentence pattern -->
<str name="hl.regex.pattern">[-\w ,/\n\"']{20,200}</str>
<bool name="hl.usePhraseHighlighter">true</bool>
<bool name="hl.highlightMultiTerm">true</bool>
</lst>
</fragmenter>
<!-- Configure the standard formatter -->
<formatter name="html" class="org.apache.solr.highlight.HtmlFormatter">
<lst name="highlighting">
<bool name="hl.usePhraseHighlighter">true</bool>
<bool name="hl.highlightMultiTerm">true</bool>
<str name="hl.simple.pre"><![CDATA[<strong>]]></str>
<str name="hl.simple.post"><![CDATA[</strong>]]></str>
</lst>
</formatter>
</highlighting>
Any help from other user is really appreciated.
2009/10/6 Koji Sekiguchi <k...@r.email.ne.jp>
Please try hl.usePhraseHighlighter=true parameter.
(It should be true by default if you use the latest nightly, but I think
you don't)
Koji
Antonio Calň wrote:
Hi Guys
I'm getting crazy with the highlighting in solr. The problem is the
follow:
when I submit an exact phrase query, I get the related results and the
related snippets with highlight. But I've noticed that the *single term of
the phrase are highlighted too*. Here an example:
If I start a search for "quick brown fox", I obtain the correct result
with
the doc wich contains the phrase, but the snippets came to me like this:
<lst name="highlighting">
<lst name="14">
<arr name="DocumentText">
<str>
The <em>quick brown fox</em> jump over the lazy dog. The <em>fox</em> is a
nice animal.
</str>
</arr>
</lst>
</lst>
Also with some documents, only single terms are highlighted insteand of
exact sentence even if the exact phrase is contained into the document i.
e.:
<lst name="highlighting">
<lst name="14">
<arr name="DocumentText">
<str>
The <em>fox</em> is a nice animal.
</str>
</arr>
</lst>
</lst>
My understanding of highlighting is that if I search for exact phrase,
only
the exact phrase is should be highlighted.
Here an extract of my solrconfig.xml & schema.xml
solrconfig.xml:
<highlighting>
<!-- Configure the standard fragmenter -->
<!-- This could most likely be commented out in the "default" case -->
<fragmenter name="gap" class="org.apache.solr.highlight.GapFragmenter">
<lst name="defaults">
<int name="hl.fragsize">500</int>
</lst>
</fragmenter>
<!-- A regular-expression-based fragmenter (f.i., for sentence
extraction) -->
<fragmenter name="regex"
class="org.apache.solr.highlight.RegexFragmenter" default="true">
<lst name="defaults">
<!-- slightly smaller fragsizes work better because of slop -->
<int name="hl.fragsize">700</int>
<!-- allow 50% slop on fragment sizes -->
<float name="hl.regex.slop">0.5</float>
<!-- a basic sentence pattern -->
<str name="hl.regex.pattern">[-\w ,/\n\"']{20,200}</str>
<bool name="hl.usePhraseHighlighter">true</bool>
<bool name="hl.highlightMultiTerm">true</bool>
</lst>
</fragmenter>
<!-- Configure the standard formatter -->
<formatter name="html" class="org.apache.solr.highlight.HtmlFormatter">
<lst name="highlighting">
<str name="hl.simple.pre"><![CDATA[<strong>]]></str>
<str name="hl.simple.post"><![CDATA[</strong>]]></str>
</lst>
</formatter>
schema.xml:
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stop_italiano.txt"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1" generateNumberParts="1" catenateWords="1"
catenateNumbers="1" catenateAll="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory"
synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true"
words="stop_italiano.txt"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1" generateNumberParts="1" catenateWords="1"
catenateNumbers="1" catenateAll="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldtype>
Maybe I'm missing something, or my understanding of the highlighting
feature
is not correct. Any Idea?
As always, thanks for your support!
Regards, Antonio