All,

I noticed what I think is a regression in 1.2.1 from 0.90.9 where the order 
of fields for highlighting is not preserved as it was in 0.90.9

For example, with a query where highlighting is defined such as

"highlight" : {
    "require_field_match" : true,
    "type" : "mycustomhighlighter",
    "options" : {
      "number_of_fragments" : 0,
      "fragment_size" : 0
    },
    "fields" : {
      "field1" : { },
      "field2" : { },
      "field3" : { },
      "field4" : { },
      "field5" : { },
      "field6" : { }
}

In 0.90.9 the order in which fields would be highlighted would be field1, 
field2, field3, field4, etc. In 1.2.1 it's arbitrary. I believe the cause 
is the use of a HashMap vs using a LinkedHashMap in the constructor 
of SearchContextHighlighter.java causing the insertion order to be lost.

The reason why I want order preserved is that I have a custom wrapping 
highlighter to FVH that highlights only the first n fields (the ones most 
likely to have hihglighting) and will only continue highlighting the 
remaining fields (potentially hundreds) if no highlighting happened for the 
initial set of fields. Doing this allows searches to execute very quickly 
on average and only occasionally taking the hit of attempting to highlight 
everything resulting in a 8-10x faster query on average.


All the best,

Bruce Ritchie

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/919a7228-0cfe-42a6-a542-be8c83fbe044%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to