We're in the process of upgrading from 0.90.5 to 1.4.1 and we see a
significant performance depredation in one of our queries.
A short profiling session shows that the biggest difference is in the
"nested native script" part of the query (see attached), which accounted
for about 10% of the total search time in 0.90.5, but now it accounts for
almost 50% in 1.4.1.
Most of that time is spent in
org.elasticsearch.search.lookup.DocLookup.get(Object), which in turn calls
a lot to
org.elasticsearch.index.fielddata.ordinals.SinglePackedOrdinals$Docs.getOrd(int)
and the script looks something like this:
private Map<String, Double> multipliers;
public float runAsFloat() {
ScriptDocValues.Strings term = (ScriptDocValues.Strings)doc().get("nested
We're in the process of upgrading from 0.90.5 to 1.4.1 and we see a
significant performance depredation in one of our queries.
A short profiling session shows that the biggest difference is in the
"nested native script" part of the query (see attached), which accounted
for about 10% of the total search time in 0.90.5, but now it accounts for
almost 50% in 1.4.1.
Most of that time is spent in
org.elasticsearch.search.lookup.DocLookup.get(Object), which in turn calls
a lot to
org.elasticsearch.index.fielddata.ordinals.SinglePackedOrdinals$Docs.getOrd(int)
and the script looks something like this:
private Map<String, Double> multipliers;
public float runAsFloat() {
ScriptDocValues.Strings term = (ScriptDocValues.Strings)doc().get("nested
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.