The error is in your groovy script, as indicated 
by GroovyScriptExecutionException. All the other info is just making it 
more difficult to help you.

"script": "_score  doc['reviews'].value"
>
Your script doesn't use any operator. It's likely that you just want to 
multiply:  "_score  * doc['reviews'].value".
In groovy, function call arguments do not need to be enclosed in brackets. 
E.g. "println 'hello'" is equivalent to "println('hello')". By omitting the 
operator, your script is trying to call _score (which is some 
UpdatableFloat), with the document field as an argument.

Cheers!

Op maandag 3 november 2014 19:46:07 UTC+1 schreef Manuel Sciuto:
>
> I have an error
>
> My mapping 
>
>
>    - "mappings": {
>       - "comida": {
>          - "dynamic": "true",
>          - "numeric_detection": true,
>          - "properties": {
>             - "id": {
>                - "type": "integer"
>             },
>             - "reviews": {
>                - "type": "integer"
>             },
>             - "name": {
>                - "analyzer": "myAnalyzerDestinos",
>                - "type": "string"
>             }
>          }
>       },
>       - "actividades": {
>          - "dynamic": "true",
>          - "numeric_detection": true,
>          - "properties": {
>             - "id": {
>                - "type": "integer"
>             },
>             - "reviews": {
>                - "type": "integer"
>             },
>             - "name": {
>                - "analyzer": "myAnalyzerDestinos",
>                - "type": "string"
>             }
>          }
>       },
>       - "alojamiento": {
>          - "dynamic": "true",
>          - "numeric_detection": true,
>          - "properties": {
>             - "id": {
>                - "type": "integer"
>             },
>             - "reviews": {
>                - "type": "integer"
>             },
>             - "name": {
>                - "analyzer": "myAnalyzerDestinos",
>                - "type": "string"
>             }
>          }
>       },
>       - "transporte_&_servicios": {
>          - "dynamic": "true",
>          - "numeric_detection": true,
>          - "properties": {
>             - "id": {
>                - "type": "integer"
>             },
>             - "reviews": {
>                - "type": "integer"
>             },
>             - "name": {
>                - "analyzer": "myAnalyzerDestinos",
>                - "type": "string"
>             }
>          }
>       }
>    },
>
>
>
> My Query 
>
> GET /business/_search
> {
>  "query": {
>    "function_score": {
>      "query": {"match": {"name": "sheraton"}},
>      "script_score": {
>        "script": "_score  doc['reviews'].value",
>        "lang": "groovy"
>      }
>    }
>  }
> }
>
> Response 
>
> {
>    "error": "SearchPhaseExecutionException[Failed to execute phase 
> [query], all shards failed; shardFailures 
> {[pGQYzpifRMumKUcblgTp2Q][business][0]: 
> QueryPhaseExecutionException[[business][0]: query[function score (name:she 
> name:sher name:shera name:sherat name:sherato 
> name:sheraton,function=script[_score  doc['reviews'].value], params 
> [null])],from[0],size[10]: Query Failed [Failed to execute main query]]; 
> nested: GroovyScriptExecutionException[MissingMethodException[No signature 
> of method: 
> org.elasticsearch.script.groovy.GroovyScriptEngineService$GroovyScript$UpdateableFloat.call()
>  
> is applicable for argument types: (java.lang.Long) values: [11]\nPossible 
> solutions: wait(long), wait(), abs(), any(), wait(long, int), 
> and(java.lang.Number)]]; }{[pGQYzpifRMumKUcblgTp2Q][business][1]: 
> QueryPhaseExecutionException[[business][1]: query[function score (name:she 
> name:sher name:shera name:sherat name:sherato 
> name:sheraton,function=script[_score  doc['reviews'].value], params 
> [null])],from[0],size[10]: Query Failed [Failed to execute main query]]; 
> nested: GroovyScriptExecutionException[MissingMethodException[No signature 
> of method: 
> org.elasticsearch.script.groovy.GroovyScriptEngineService$GroovyScript$UpdateableFloat.call()
>  
> is applicable for argument types: (java.lang.Long) values: [16]\nPossible 
> solutions: wait(long), wait(), abs(), any(), wait(long, int), 
> and(java.lang.Number)]]; }]",
>    "status": 500
> }
>
> Why?
>
>
>
> El sábado, 1 de noviembre de 2014 13:02:13 UTC-3, Ryan Ernst escribió:
>>
>> The root cause of the error is here:
>> "ScriptException[dynamic scripting for [mvel] disabled]; "
>>
>> I would guess you are running on ES 1.2 or 1.3? Dynamic scripting was 
>> disabled by default in 1.2, and for non sandboxed languages in 1.3.  In 
>> 1.4, the default script language was changed to Groovy, which is sandboxed, 
>> and thus can be safely compiled dynamically.
>>
>> See this blog for more details:
>> http://www.elasticsearch.org/blog/scripting-security/
>>
>> If running in 1.3, you can simply change the language of the script:
>> GET /searchtube/_search
>> {
>>  "query": {
>>    "function_score": {
>>      "query": {"match": {"_all": "severed"}},
>>      "script_score": {
>>        "script": "_score * log(doc['likes'].value + doc['views'].value + 
>> 1)",
>>        "lang": "groovy"
>>      }
>>    }
>>  }
>> }
>>
>> Although you could also use the "expr" lang (expressions) for this simple 
>> script, which will be much faster!
>>
>> On Wednesday, October 29, 2014 11:44:07 AM UTC-7, Manuel Sciuto wrote:
>>>
>>> Hello everyone 
>>>
>>>
>>> Do not understand why it does not work 
>>>
>>> # Create some docs
>>> PUT /searchtube/video/1 
>>> {
>>>   "title": "Sick Sad World: Cold Breeze on the Interstate",
>>>   "description": "Is your toll collector wearing pants, a skirt, or 
>>> nothing but a smile? Cold Breeze on the Interstate, next on Sick, Sad 
>>> World.",
>>>   "views": 500,
>>>   "likes":2,
>>>   "created_at": "2014-04-22T08:00:00"
>>> }
>>>
>>> PUT /searchtube/video/2
>>> {
>>> "title": "Sick Sad World: The Severed Pianist",
>>>   "description": "When he turned up his nose at accordion lessons, they 
>>> cut off his inheritance molto allegro. The Severed Pianist, next on Sick, 
>>> Sad World.",
>>>   "views": 6000,
>>>   "likes": 100,
>>>   "created_at": "2014-04-22T12:00:00"
>>> }
>>>
>>> #SEARCH FUCNTION_SCORE
>>> GET /searchtube/_search
>>> {
>>>   "query": {
>>>     "function_score": {
>>>       "query": {"match": {"_all": "severed"}},
>>>       "script_score": {
>>>         "script": "_score * log(doc['likes'].value + doc['views'].value 
>>> + 1)"
>>>       }
>>>     }
>>>   }
>>> }
>>>
>>>
>>> Error Response
>>>
>>> {
>>>    "error": "SearchPhaseExecutionException[Failed to execute phase 
>>> [query], all shards failed; shardFailures 
>>> {[vrJl1dg1RV2wqGZ2Hqv3zQ][searchtube][0]: 
>>> SearchParseException[[searchtube][0]: from[-1],size[-1]: Parse Failure 
>>> [Failed to parse source [{\n  \"query\": {\n    \"function_score\": {\n     
>>>  \"query\": {\"match\": {\"_all\": \"severed\"}},\n      \"script_score\": 
>>> {\n        \"script\": \"_score * log(doc['likes'].value + 
>>> doc['views'].value + 1)\"\n      }\n    }\n  }\n}\n]]]; nested: 
>>> QueryParsingException[[searchtube] script_score the script could not be 
>>> loaded]; nested: ScriptException[dynamic scripting for [mvel] disabled]; 
>>> }{[vrJl1dg1RV2wqGZ2Hqv3zQ][searchtube][1]: 
>>> SearchParseException[[searchtube][1]: from[-1],size[-1]: Parse Failure 
>>> [Failed to parse source [{\n  \"query\": {\n    \"function_score\": {\n     
>>>  \"query\": {\"match\": {\"_all\": \"severed\"}},\n      \"script_score\": 
>>> {\n        \"script\": \"_score * log(doc['likes'].value + 
>>> doc['views'].value + 1)\"\n      }\n    }\n  }\n}\n]]]; nested: 
>>> QueryParsingException[[searchtube] script_score the script could not be 
>>> loaded]; nested: ScriptException[dynamic scripting for [mvel] disabled]; 
>>> }{[vrJl1dg1RV2wqGZ2Hqv3zQ][searchtube][2]: 
>>> SearchParseException[[searchtube][2]: from[-1],size[-1]: Parse Failure 
>>> [Failed to parse source [{\n  \"query\": {\n    \"function_score\": {\n     
>>>  \"query\": {\"match\": {\"_all\": \"severed\"}},\n      \"script_score\": 
>>> {\n        \"script\": \"_score * log(doc['likes'].value + 
>>> doc['views'].value + 1)\"\n      }\n    }\n  }\n}\n]]]; nested: 
>>> QueryParsingException[[searchtube] script_score the script could not be 
>>> loaded]; nested: ScriptException[dynamic scripting for [mvel] disabled]; 
>>> }{[vrJl1dg1RV2wqGZ2Hqv3zQ][searchtube][3]: 
>>> SearchParseException[[searchtube][3]: from[-1],size[-1]: Parse Failure 
>>> [Failed to parse source [{\n  \"query\": {\n    \"function_score\": {\n     
>>>  \"query\": {\"match\": {\"_all\": \"severed\"}},\n      \"script_score\": 
>>> {\n        \"script\": \"_score * log(doc['likes'].value + 
>>> doc['views'].value + 1)\"\n      }\n    }\n  }\n}\n]]]; nested: 
>>> QueryParsingException[[searchtube] script_score the script could not be 
>>> loaded]; nested: ScriptException[dynamic scripting for [mvel] disabled]; 
>>> }{[vrJl1dg1RV2wqGZ2Hqv3zQ][searchtube][4]: 
>>> SearchParseException[[searchtube][4]: from[-1],size[-1]: Parse Failure 
>>> [Failed to parse source [{\n  \"query\": {\n    \"function_score\": {\n     
>>>  \"query\": {\"match\": {\"_all\": \"severed\"}},\n      \"script_score\": 
>>> {\n        \"script\": \"_score * log(doc['likes'].value + 
>>> doc['views'].value + 1)\"\n      }\n    }\n  }\n}\n]]]; nested: 
>>> QueryParsingException[[searchtube] script_score the script could not be 
>>> loaded]; nested: ScriptException[dynamic scripting for [mvel] disabled]; 
>>> }]",
>>>    "status": 400
>>> }
>>>
>>>
>>>
>>> What is this doing wrong? It is an example that I found in 
>>> https://www.found.no/foundation/function-scoring/
>>>
>>

-- 
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/26cbb104-794c-4a5e-8397-18c015143ae8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to