Vorrei utilizzare uno script per effettuare le seguenti operazioni:Tipo di conversione in script elasticsearch
{
"query": {
"match_all": {}
},
"facets": {
"user_facet": {
"terms": {
"field": "user_id",
"script": "term + \"_\" + _source.code"
}
}
}
}
Questo è simile alla risposta data in questa domanda: elastic search double facet
L'unico problema che ho è i miei campi user_id e code sono di tipo long invece di stringhe. C'è un modo per renderli stringhe in modo che possano essere combinati con la sceneggiatura?
L'errore particolare sto ottenendo è questo:
nested: ClassCastException[java.lang.String cannot be cast to java.lang.Number];
Non vedo dal vostro esempio come un utente_id lungo possa mai eguagliare il termine che si sta calcolando nello script, che è un pungiglione, anche se lo si è convertito. Devo mancare qualcosa. – Phil
Un pensiero da provare ... Forse l'uso di 'doc ['user_id']' per il campo funzionerebbe? – Phil
Puoi anche usare Java all'interno di uno script Mvel. Vorrei semplicemente convertirli in stringhe usando java poi;) – javanna