2016-02-10 14 views
5

sto cercando di utilizzare questa query script di esempio:Come abilitare gli script groovy in linea (in modalità sandbox)?

POST /_search 
{ 
    "script_fields": { 
     "my_field": { 
      "script": "1 + my_evar", 
      "params": { 
       "my_evar": 2 
      } 
     } 
    } 
} 

che si traduce nel seguente messaggio di errore:

"ragione": "gli script di tipo [inline], il funzionamento [di ricerca] e lang [Groovy] sono disabilitati"

ho cercato di attivare gli script con questo po 'di configurazione elasticsearch.yml:

script.inline: true 
script.indexed: true 
script.search: true 
script.update: true 
script.mapping: true 
script.groovy.sandbox.enabled: true 

Mi manca un'impostazione?

+1

Hanno avuto abbastanza dolore con Indolore, eh? Benvenuto nel club. –

risposta

7

L'impostazione di seguito in elasticsearch.yml ha funzionato per me.

script.engine.groovy.inline.search: on 
+1

'script.engine.groovy.inline.update: on' è anche utile. Documenti completi qui: https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting-security.html – Resonance

1

Usa impostazioni questo:

script.disable_dynamic: false 
3

grazie @Richa, in realtà ho provato questo, ma ho ottenuto questo errore

script.disable_dynamic non è un ambiente supportato, sostituirle con impostazioni dello script a grana fine . script dinamici possono essere abilitati per tutte le lingue e tutte le operazioni sostituendo script.disable_dynamic: false con script.inline: on e script.indexed: on

Allora ho provato solo queste tre impostazioni e ha funzionato bene.

Problemi correlati