[ 
http://issues.apache.org/jira/browse/SOLR-37?page=comments#action_12431618 ] 
            
Andrew May commented on SOLR-37:
--------------------------------

I guess I need to number my patch files as they don't seem to get listed in the 
order they were added and I can't remove old ones. The new patch appears to be 
number 3.

> Add additional configuration options for Highlighting
> -----------------------------------------------------
>
>                 Key: SOLR-37
>                 URL: http://issues.apache.org/jira/browse/SOLR-37
>             Project: Solr
>          Issue Type: Improvement
>          Components: search
>            Reporter: Andrew May
>         Attachments: patch, patch, patch.diff, patch.diff
>
>
> As discussed in the mailing list, I've been looking at adding additional 
> configuration options for highlighting. 
> I've made quite a few changes to the properties for highlighting:
> Properties that can be set on request, or in solrconfig.xml at the top level:
>   highlight (true/false)
>   highlightFields
> Properties that can be set in solrconfig.xml at the top level or per-field
>   formatter (simple/gradient)
>   formatterPre (preTag for simple formatter)
>   formatterPost (postTag for simple formatter)
>   formatterMinFgCl (min foreground colour for gradient formatter)
>   formatterMaxFgCl (max foreground colour for gradient formatter)
>   formatterMinBgCl (min background colour for gradient formatter)
>   formatterMaxBgCl (max background colour for gradient formatter)
>   fragsize (if <=0 use NullFragmenter, otherwise use GapFragmenter with this 
> value)
> I've added variables for these values to CommonParams, plus there's a fields 
> Map<String,CommonParams> that is parsed from nested NamedLists (i.e. a lst 
> named "fields", with a nested lst for each field).
> Here's a sample of how you can mix and match properties in solrconfig.xml:
>   <requestHandler name="hl" class="solr.StandardRequestHandler" >
>     <str name="formatter">simple</str>
>     <str name="formatterPre">&lt;i></str>
>     <str name="formatterPost">&lt;/i></str>
>     <str name="highlightFields">title,authors,journal</str>
>     <int name="fragsize">0</int>
>     <lst name="fields">
>       <lst name="abstract">
>         <str name="formatter">gradient</str>
>         <str name="formatterMinBgCl">#FFFF99</str>
>         <str name="formatterMaxBgCl">#FF9900</str>
>         <int name="fragsize">30</int>
>         <int name="maxSnippets">2</int>
>       </lst>
>       <lst name="authors">
>         <str name="formatterPre">&lt;strong></str>
>         <str name="formatterPost">&lt;/strong></str>
>       </lst>
>     </lst>
>   </requestHandler>
> I've created HighlightingUtils to handle most of the parameter parsing, but 
> the hightlighting is still done in SolrPluginUtils and the 
> doStandardHighlighting() method still has the same signature, but the other 
> highlighting methods have had to be changed (because highlighters are now 
> created per highlighted field).
> I'm not particularly happy with the code to pull parameters from 
> CommonParams, first checking the field then falling back, e.g.:
>          String pre = (params.fields.containsKey(fieldName) && 
> params.fields.get(fieldName).formatterPre != null) ?
>                params.fields.get(fieldName).formatterPre : 
>                   params.formatterPre != null ? params.formatterPre : "<em>";
> I've removed support for a custom formatter - just choosing between 
> simple/gradient. Probably that's a bad decision, but I wanted an easy way to 
> choose between the standard formatters without having to invent a generic way 
> of supplying arguments for the constructor. Perhaps there should be 
> formatterType=simple/gradient and formatterClass=... which overrides 
> formatterType if set at a lower level - with the formatterClass having to 
> have a zero-args constructor? Note: gradient is actually 
> SpanGradientFormatter.
> I'm not sure I properly understand how Fragmenters work, so supplying 
> fragsize to GapFragmenter where >0 (instead of what was a default of 50) may 
> not make sense.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to