From d5a96e81c409d351796b8fc926ae31bf952af7d6 Mon Sep 17 00:00:00 2001 From: Mark Wolters Date: Fri, 10 May 2024 17:49:20 -0400 Subject: [PATCH] vectorizing find one op --- .../opdispensers/DataApiFindOneOpDispenser.java | 3 ++- .../opdispensers/DataApiOpDispenser.java | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/nb-adapters/adapter-dataapi/src/main/java/io/nosqlbench/adapter/dataapi/opdispensers/DataApiFindOneOpDispenser.java b/nb-adapters/adapter-dataapi/src/main/java/io/nosqlbench/adapter/dataapi/opdispensers/DataApiFindOneOpDispenser.java index 7731672bf..e79cefc82 100644 --- a/nb-adapters/adapter-dataapi/src/main/java/io/nosqlbench/adapter/dataapi/opdispensers/DataApiFindOneOpDispenser.java +++ b/nb-adapters/adapter-dataapi/src/main/java/io/nosqlbench/adapter/dataapi/opdispensers/DataApiFindOneOpDispenser.java @@ -55,8 +55,9 @@ public class DataApiFindOneOpDispenser extends DataApiOpDispenser { private FindOneOptions getFindOneOptions(ParsedOp op, long l) { FindOneOptions options = new FindOneOptions(); Sort sort = getSortFromOp(op, l); + float[] vector = getVectorValues(op, l); if (sort != null) { - options = options.sort(sort); + options = vector != null ? options.sort(vector, sort) : options.sort(sort); } Projection[] projection = getProjectionFromOp(op, l); if (projection != null) { diff --git a/nb-adapters/adapter-dataapi/src/main/java/io/nosqlbench/adapter/dataapi/opdispensers/DataApiOpDispenser.java b/nb-adapters/adapter-dataapi/src/main/java/io/nosqlbench/adapter/dataapi/opdispensers/DataApiOpDispenser.java index 9ac931ced..90a32d9df 100644 --- a/nb-adapters/adapter-dataapi/src/main/java/io/nosqlbench/adapter/dataapi/opdispensers/DataApiOpDispenser.java +++ b/nb-adapters/adapter-dataapi/src/main/java/io/nosqlbench/adapter/dataapi/opdispensers/DataApiOpDispenser.java @@ -127,6 +127,11 @@ public abstract class DataApiOpDispenser extends BaseOpDispenser vectorValuesList = (List) rawVectorValues; + vectorValues = new float[vectorValuesList.size()]; + for (int i = 0; i < vectorValuesList.size(); i++) { + vectorValues[i] = Float.parseFloat(vectorValuesList.get(i).toString()); + } + return vectorValues; + } + protected Projection[] getProjectionFromOp(ParsedOp op, long l) { Projection[] projection = null; Optional> projectionFunction = op.getAsOptionalFunction("projection", Map.class);