Skip to content

Commit edee9fc

Browse files
Copilot1yefuwang1
andauthored
Fix Float16 vector query execution (#42)
* Initial plan * Add Float16 vector type handling in query executor Co-authored-by: 1yefuwang1 <18023393+1yefuwang1@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: 1yefuwang1 <18023393+1yefuwang1@users.noreply.github.com>
1 parent 436a366 commit edee9fc

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

vectorlite/constraint.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,20 @@ absl::StatusOr<QueryExecutor::QueryResult> QueryExecutor::Execute() const {
221221
VECTORLITE_ASSERT(space_.normalize);
222222
BF16Vector normalized_vector = quantized_vector.Normalize();
223223

224+
auto result = index_.searchKnnCloserFirst(
225+
normalized_vector.data().data(), knn_param->k, rowid_filter.get());
226+
return result;
227+
} else if (space_.vector_type == VectorType::Float16) {
228+
F16Vector quantized_vector = QuantizeToF16(knn_param->query_vector);
229+
230+
if (!space_.normalize) {
231+
return index_.searchKnnCloserFirst(quantized_vector.data().data(),
232+
knn_param->k, rowid_filter.get());
233+
}
234+
235+
VECTORLITE_ASSERT(space_.normalize);
236+
F16Vector normalized_vector = quantized_vector.Normalize();
237+
224238
auto result = index_.searchKnnCloserFirst(
225239
normalized_vector.data().data(), knn_param->k, rowid_filter.get());
226240
return result;

0 commit comments

Comments
 (0)