@@ -30,7 +30,7 @@ class LuminaInterfaceTest : public ::testing::Test {
3030 void TearDown () override {}
3131
3232 void WriteAndFlush (const std::string& index_path,
33- const std::vector<::lumina::core::VectorId >& row_ids) const {
33+ const std::vector<::lumina::core::vector_id_t >& row_ids) const {
3434 auto fs = std::make_shared<LocalFileSystem>();
3535 std::shared_ptr<MemoryPool> paimon_pool = GetMemoryPool ();
3636 auto pool = std::make_shared<LuminaMemoryPool>(paimon_pool);
@@ -43,8 +43,8 @@ class LuminaInterfaceTest : public ::testing::Test {
4343 .Set (::lumina::core::kEncodingType , ::lumina::core::kEncodingRawf32 );
4444 auto builder_result =
4545 ::lumina::api::LuminaBuilder::Create (builder_options, memory_resource);
46- ASSERT_TRUE (builder_result.status . IsOk ()) << builder_result.status .Message ();
47- auto writer = std::move (builder_result. value );
46+ ASSERT_TRUE (builder_result.IsOk ()) << builder_result.GetStatus () .Message ();
47+ auto writer = std::move (builder_result). TakeValue ( );
4848 // pretrain
4949 ASSERT_TRUE (writer.Pretrain (/* data=*/ nullptr , /* n=*/ 0 ).IsOk ());
5050 // insert data
@@ -65,9 +65,9 @@ class LuminaInterfaceTest : public ::testing::Test {
6565 }
6666
6767 void Search (const std::string& index_path, int32_t topk,
68- const std::vector<::lumina::core::VectorId >& expected_row_ids,
68+ const std::vector<::lumina::core::vector_id_t >& expected_row_ids,
6969 const std::vector<float >& expected_distances,
70- const std::function<bool (::lumina::core::VectorId id)>& filter = nullptr) const {
70+ const std::function<bool (::lumina::core::vector_id_t id)>& filter = nullptr) const {
7171 ASSERT_EQ (expected_row_ids.size (), expected_distances.size ());
7272 auto fs = std::make_shared<LocalFileSystem>();
7373 std::shared_ptr<MemoryPool> paimon_pool = GetMemoryPool ();
@@ -77,12 +77,11 @@ class LuminaInterfaceTest : public ::testing::Test {
7777 // create reader
7878 ::lumina::api::SearcherOptions searcher_options;
7979 searcher_options.Set (::lumina::core::kIndexType , ::lumina::core::kIndexTypeBruteforce )
80- .Set (::lumina::core::kDimension , 4 )
81- .Set (::lumina::core::kSearchThreadCount , 10 );
80+ .Set (::lumina::core::kDimension , 4 );
8281 auto reader_result =
8382 ::lumina::api::LuminaSearcher::Create (searcher_options, memory_resource);
84- ASSERT_TRUE (reader_result.status . IsOk ());
85- auto reader = std::move (reader_result. value );
83+ ASSERT_TRUE (reader_result.IsOk ());
84+ auto reader = std::move (reader_result). TakeValue ( );
8685 ASSERT_OK_AND_ASSIGN (std::shared_ptr<InputStream> in, fs->Open (index_path));
8786 auto file_reader = std::make_unique<LuminaFileReader>(in);
8887 ASSERT_TRUE (reader.Open (std::move (file_reader), ::lumina::api::IOOptions ()).IsOk ());
@@ -102,18 +101,20 @@ class LuminaInterfaceTest : public ::testing::Test {
102101 if (parallel_number > 0 ) {
103102 search_options.Set (::lumina::core::kSearchParallelNumber , parallel_number);
104103 }
105- ::lumina::core::Result<::lumina::api::LuminaSearcher::SearchResult> search_result;
104+
106105 if (!filter) {
107- search_result = reader.Search (query, search_options, *pool);
106+ auto search_result = reader.Search (query, search_options, *pool);
107+ ASSERT_TRUE (search_result.IsOk ()) << search_result.GetStatus ().Message ();
108+ CheckResult (search_result.Value ().topk , expected_row_ids, expected_distances);
108109 } else {
109110 search_options.Set (::lumina::core::kSearchThreadSafeFilter , true );
110111 ::lumina::extensions::SearchWithFilterExtension reader_with_filter;
111112 ASSERT_TRUE (reader.Attach (reader_with_filter).IsOk ());
112- search_result =
113+ auto search_result =
113114 reader_with_filter.SearchWithFilter (query, filter, search_options, *pool);
115+ ASSERT_TRUE (search_result.IsOk ()) << search_result.GetStatus ().Message ();
116+ CheckResult (search_result.Value ().topk , expected_row_ids, expected_distances);
114117 }
115- ASSERT_TRUE (search_result.status .IsOk ()) << search_result.status .Message ();
116- CheckResult (search_result.value .topk , expected_row_ids, expected_distances);
117118
118119 // TODO(xinyu.lxy): check memory paimon_pool, current memory use = query mem +
119120 // reader mem
@@ -133,7 +134,7 @@ class LuminaInterfaceTest : public ::testing::Test {
133134 }
134135
135136 void CheckResult (const std::vector<::lumina::api::LuminaSearcher::SearchHit>& search_result,
136- const std::vector<::lumina::core::VectorId >& expected_row_ids,
137+ const std::vector<::lumina::core::vector_id_t >& expected_row_ids,
137138 const std::vector<float >& expected_distances) const {
138139 ASSERT_EQ (search_result.size (), expected_row_ids.size ());
139140 for (size_t i = 0 ; i < search_result.size (); i++) {
@@ -155,11 +156,11 @@ TEST_F(LuminaInterfaceTest, TestSimple) {
155156 std::string index_path = dir->Str () + " /lumina_test.index" ;
156157
157158 // write index
158- std::vector<::lumina::core::VectorId > row_ids = {0l , 1l , 2l , 3l };
159+ std::vector<::lumina::core::vector_id_t > row_ids = {0l , 1l , 2l , 3l };
159160 WriteAndFlush (index_path, row_ids);
160161
161162 // read index
162- std::vector<::lumina::core::VectorId > expected_row_ids = {3l , 1l , 2l , 0l };
163+ std::vector<::lumina::core::vector_id_t > expected_row_ids = {3l , 1l , 2l , 0l };
163164 std::vector<float > expected_distances = {0 .01f , 2 .01f , 2 .21f , 4 .21f };
164165 Search (index_path, /* topk=*/ 4 , expected_row_ids, expected_distances);
165166}
@@ -169,11 +170,11 @@ TEST_F(LuminaInterfaceTest, TestWithDocIdGap) {
169170 std::string index_path = dir->Str () + " /lumina_test.index" ;
170171
171172 // write index
172- std::vector<::lumina::core::VectorId > row_ids = {0l , 2l , 4l , 6l };
173+ std::vector<::lumina::core::vector_id_t > row_ids = {0l , 2l , 4l , 6l };
173174 WriteAndFlush (index_path, row_ids);
174175
175176 // read index
176- std::vector<::lumina::core::VectorId > expected_row_ids = {6l , 2l , 4l , 0l };
177+ std::vector<::lumina::core::vector_id_t > expected_row_ids = {6l , 2l , 4l , 0l };
177178 std::vector<float > expected_distances = {0 .01f , 2 .01f , 2 .21f , 4 .21f };
178179 Search (index_path, /* topk=*/ 4 , expected_row_ids, expected_distances);
179180}
@@ -183,11 +184,11 @@ TEST_F(LuminaInterfaceTest, TestWithSmallTopk) {
183184 std::string index_path = dir->Str () + " /lumina_test.index" ;
184185
185186 // write index
186- std::vector<::lumina::core::VectorId > row_ids = {0l , 1l , 2l , 3l };
187+ std::vector<::lumina::core::vector_id_t > row_ids = {0l , 1l , 2l , 3l };
187188 WriteAndFlush (index_path, row_ids);
188189
189190 // read index
190- std::vector<::lumina::core::VectorId > expected_row_ids = {3l , 1l , 2l };
191+ std::vector<::lumina::core::vector_id_t > expected_row_ids = {3l , 1l , 2l };
191192 std::vector<float > expected_distances = {0 .01f , 2 .01f , 2 .21f };
192193 Search (index_path, /* topk=*/ 3 , expected_row_ids, expected_distances);
193194}
@@ -197,20 +198,20 @@ TEST_F(LuminaInterfaceTest, TestWithFilter) {
197198 std::string index_path = dir->Str () + " /lumina_test.index" ;
198199
199200 // write index
200- std::vector<::lumina::core::VectorId > row_ids = {0l , 1l , 2l , 3l };
201+ std::vector<::lumina::core::vector_id_t > row_ids = {0l , 1l , 2l , 3l };
201202 WriteAndFlush (index_path, row_ids);
202203
203204 // read index
204205 {
205- std::vector<::lumina::core::VectorId > expected_row_ids = {1l , 2l };
206+ std::vector<::lumina::core::vector_id_t > expected_row_ids = {1l , 2l };
206207 std::vector<float > expected_distances = {2 .01f , 2 .21f };
207- auto filter = [](::lumina::core::VectorId id) -> bool { return id < 3 ; };
208+ auto filter = [](::lumina::core::vector_id_t id) -> bool { return id < 3 ; };
208209 Search (index_path, /* topk=*/ 2 , expected_row_ids, expected_distances, filter);
209210 }
210211 {
211- std::vector<::lumina::core::VectorId > expected_row_ids = {1l , 2l , 0l };
212+ std::vector<::lumina::core::vector_id_t > expected_row_ids = {1l , 2l , 0l };
212213 std::vector<float > expected_distances = {2 .01f , 2 .21f , 4 .21f };
213- auto filter = [](::lumina::core::VectorId id) -> bool { return id < 3 ; };
214+ auto filter = [](::lumina::core::vector_id_t id) -> bool { return id < 3 ; };
214215 Search (index_path, /* topk=*/ 4 , expected_row_ids, expected_distances, filter);
215216 }
216217}
0 commit comments