Hello,

Using _source for scripts is typically slow, because ES has to go to each
stored document and extract fields from there. A faster approach is to use
something like doc['field3'].values[12], which will used the field data
cache (already loaded in memory, at least after the first run):
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-scripting.html#_document_fields

More details about field data can be found here:
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/index-modules-fielddata.htm

Best regards,
Radu
--
Performance Monitoring * Log Analytics * Search Analytics
Solr & Elasticsearch Support * http://sematext.com/


On Wed, Apr 30, 2014 at 12:27 PM, NM <n.maisonne...@gmail.com> wrote:

> I have document having fields containing  large array.
>
> I would like to score according to the value of a nth element of such
> array, but got very slow answer (5s) for only 10K document indexed.
>
> my mapping:
> document {
> id: value,
> field2: string,
> field3: [ int_1,int_2, ... , int_10k] <- large array of 10K integers
> }
>
> assume I generated and indexed 10K documents with 1K random integer values
> in the field 'field3'
>
> I then use the following search query
>
> GET /test/document/_search
> {
>   "query":{
>    "function_score":{
>       "script_score" : {
>     "script" : " _source.fields3[12] * _source.fields3[11] "
> }
>
> => got 5000 ms
>
> however with basic Java object with a simple nested loop:
>
> - for all the documents
>   score[i] =  doc[i].fields[12] * doc[i].fields[11]
> - sort by score
>
> => got < 50 ms
>
> ES is 100 slower than a simple loop..
>
> How to get similar performance with ES?
>
>  --
> 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 elasticsearch+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elasticsearch/db53da70-4f75-4088-b9a6-2cde3caef062%40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/db53da70-4f75-4088-b9a6-2cde3caef062%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/CAHXA0_2wmDJFBJvJ1fTUsszaP7GjVtJYfSU-AbHMq6NS%2BVqhFw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to