Ich mag würde ein Skript verwenden, um die folgenden Funktionen ausführen:Typumwandlung in Elasticsearch Skripte
{
"query": {
"match_all": {}
},
"facets": {
"user_facet": {
"terms": {
"field": "user_id",
"script": "term + \"_\" + _source.code"
}
}
}
}
Dies ist ähnlich wie die Antwort auf diese Frage gegeben: elastic search double facet
Das einzige Problem, das ich habe ist Meine user_id- und code-Felder sind lange Typen anstatt Strings. Gibt es eine Möglichkeit, sie zu Strings zu machen, damit sie mit dem Skript kombiniert werden können?
Der besondere Fehler ich dies bin immer:
nested: ClassCastException[java.lang.String cannot be cast to java.lang.Number];
Ich sehe nicht aus Ihrem Beispiel, wie eine lange user_id jemals mit dem Begriff übereinstimmen kann, den Sie im Skript berechnen, was ein Stich ist, selbst wenn Sie ihn konvertiert haben. Ich muss etwas verpassen. – Phil
Ein Gedanke zu versuchen ... Vielleicht würde die Verwendung von 'doc ['user_id']' für das Feld funktionieren? – Phil
Sie können Java auch in einem MVEL-Skript verwenden. Ich würde sie dann einfach mit Java in Strings konvertieren;) – javanna