Skip to content

Commit f6cb6c8

Browse files
authored
[python] vector lumina: python fix code (#7609)
1 parent 1bf23b1 commit f6cb6c8

File tree

2 files changed

+6
-65
lines changed

2 files changed

+6
-65
lines changed

paimon-python/pypaimon/globalindex/lumina/lumina_vector_global_index_reader.py

Lines changed: 2 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"""
2424

2525
import os
26+
import numpy as np
2627

2728
from pypaimon.globalindex.global_index_reader import GlobalIndexReader
2829
from pypaimon.globalindex.vector_search_result import DictBasedScoredIndexResult
@@ -57,15 +58,7 @@ def visit_vector_search(self, vector_search):
5758
self._ensure_loaded()
5859

5960
from lumina_data import MetricType
60-
61-
query = vector_search.vector
62-
# Flatten to a plain list of floats for search_list API
63-
if hasattr(query, 'tolist'):
64-
query_flat = list(query.flatten()) if hasattr(query, 'flatten') else list(query)
65-
else:
66-
query_flat = list(query)
67-
query_flat = [float(v) for v in query_flat]
68-
61+
query_flat = [float(v) for v in np.asarray(vector_search.vector).tolist()]
6962
expected_dim = self._index_meta.dim
7063
if len(query_flat) != expected_dim:
7164
raise ValueError(
@@ -152,50 +145,3 @@ def close(self):
152145
if self._stream is not None:
153146
self._stream.close()
154147
self._stream = None
155-
156-
# =================== unsupported =====================
157-
158-
def visit_equal(self, field_ref, literal):
159-
return None
160-
161-
def visit_not_equal(self, field_ref, literal):
162-
return None
163-
164-
def visit_less_than(self, field_ref, literal):
165-
return None
166-
167-
def visit_less_or_equal(self, field_ref, literal):
168-
return None
169-
170-
def visit_greater_than(self, field_ref, literal):
171-
return None
172-
173-
def visit_greater_or_equal(self, field_ref, literal):
174-
return None
175-
176-
def visit_is_null(self, field_ref):
177-
return None
178-
179-
def visit_is_not_null(self, field_ref):
180-
return None
181-
182-
def visit_in(self, field_ref, literals):
183-
return None
184-
185-
def visit_not_in(self, field_ref, literals):
186-
return None
187-
188-
def visit_starts_with(self, field_ref, literal):
189-
return None
190-
191-
def visit_ends_with(self, field_ref, literal):
192-
return None
193-
194-
def visit_contains(self, field_ref, literal):
195-
return None
196-
197-
def visit_like(self, field_ref, literal):
198-
return None
199-
200-
def visit_between(self, field_ref, min_v, max_v):
201-
return None

paimon-python/pypaimon/table/source/vector_search_read.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -86,22 +86,17 @@ def _eval(self, row_range_start, row_range_end, vector_index_files):
8686
file_io = self._table.file_io
8787
options = self._table.table_schema.options
8888

89-
reader = _create_vector_reader(
90-
index_type, file_io, index_path,
91-
index_io_meta_list, options
92-
)
93-
9489
vector_search = VectorSearch(
9590
vector=self._query_vector,
9691
limit=self._limit,
9792
field_name=self._vector_column.name
9893
)
99-
100-
try:
94+
with _create_vector_reader(
95+
index_type, file_io, index_path,
96+
index_io_meta_list, options
97+
) as reader:
10198
offset_reader = OffsetGlobalIndexReader(reader, row_range_start, row_range_end)
10299
return offset_reader.visit_vector_search(vector_search)
103-
finally:
104-
reader.close()
105100

106101

107102
def _create_vector_reader(index_type, file_io, index_path, index_io_meta_list, options=None):

0 commit comments

Comments
 (0)