diff --git a/src/main/java/com/liorkn/elasticsearch/script/VectorScoreScript.java b/src/main/java/com/liorkn/elasticsearch/script/VectorScoreScript.java index 0b87cf3..a198717 100755 --- a/src/main/java/com/liorkn/elasticsearch/script/VectorScoreScript.java +++ b/src/main/java/com/liorkn/elasticsearch/script/VectorScoreScript.java @@ -119,12 +119,20 @@ public VectorScoreScript(Map params) { // get query inputVector - convert to primitive final Object vector = params.get("vector"); - if(vector != null) { - final ArrayList tmp = (ArrayList) vector; - inputVector = new double[tmp.size()]; - for (int i = 0; i < inputVector.length; i++) { - inputVector[i] = tmp.get(i); - } + if (vector != null) { + final ArrayList tmp = (ArrayList) vector; + inputVector = new double[tmp.size()]; + for (int i = 0; i < inputVector.length; i++) { + Object obj = tmp.get(i); + if (obj instanceof Double) { + inputVector[i] = ((Double)obj).doubleValue(); + } else if (obj instanceof Integer) { + inputVector[i] = ((Integer)obj).doubleValue(); + } else { + throw new IllegalArgumentException("Cannot convert vector to double array"); + } + } + } else { final Object encodedVector = params.get("encoded_vector"); if(encodedVector == null) { @@ -190,4 +198,4 @@ public final Object run() { } } -} \ No newline at end of file +}