¿Es posible resaltar términos de consulta completos? f.e. cuando pido "Estados Unidos" quiero llegar:Solr: resalte la frase de consulta
<em>United States</em>
y no:
<em>United</em> <em>States</em>
He buscado en toda la Internet de una respuesta, utilicé todas las combinaciones de hl. mergeContiguous, hl.usePhrasesHighlighter y hl.highlightMultiTerm parámetros y todavía no puede hacerlo funcionar.
mi consulta es:
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
la respuesta es:
...
<arr name="post_text"><str>Tag: <em>janusz</em> <em>palikot</em> - Sowiniec: "Sowiniec"</str></arr>
...
mi campo "POST_TEXT" es:
<field name="post_text" type="text" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true" required="true" />
mi tipo "texto" es:
<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>
También probé a usar FastVectorHighlighter con hl.useFastVectorHighlighter = true pero encontró un 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)
...
¿Me puede ayudar, por favor?
¿alguna vez encontró una forma de marcar toda la frase (y solo eso) en los resultados de Solr? ... Sé que esto es años después, pero todavía no puedo encontrar una respuesta funcional – mibm