Skip to content

Commit 8f905c3

Browse files
committed
fixed cast exception when passed vector contains integer values
1 parent af7b832 commit 8f905c3

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

src/main/java/com/liorkn/elasticsearch/script/VectorScoreScript.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -119,12 +119,20 @@ public VectorScoreScript(Map<String, Object> params) {
119119

120120
// get query inputVector - convert to primitive
121121
final Object vector = params.get("vector");
122-
if(vector != null) {
123-
final ArrayList<Double> tmp = (ArrayList<Double>) vector;
124-
inputVector = new double[tmp.size()];
125-
for (int i = 0; i < inputVector.length; i++) {
126-
inputVector[i] = tmp.get(i);
127-
}
122+
if (vector != null) {
123+
final ArrayList<Object> tmp = (ArrayList<Object>) vector;
124+
inputVector = new double[tmp.size()];
125+
for (int i = 0; i < inputVector.length; i++) {
126+
Object obj = tmp.get(i);
127+
if (obj instanceof Double) {
128+
inputVector[i] = ((Double)obj).doubleValue();
129+
} else if (obj instanceof Integer) {
130+
inputVector[i] = ((Integer)obj).doubleValue();
131+
} else {
132+
throw new IllegalArgumentException("Cannot convert vector to double array");
133+
}
134+
}
135+
128136
} else {
129137
final Object encodedVector = params.get("encoded_vector");
130138
if(encodedVector == null) {
@@ -190,4 +198,4 @@ public final Object run() {
190198
}
191199
}
192200

193-
}
201+
}

0 commit comments

Comments
 (0)