@@ -86,11 +86,13 @@ CREATE INDEX ON Item (vector) LSM_VECTOR
8686 database .command ("sql" , "INSERT INTO Item SET vector = ?" , (Object ) nearVector );
8787 });
8888
89- // Verify delta buffer has the new vector
89+ // Verify the new vector is tracked (either in delta buffer or live graph)
9090 final Map <String , Long > stats = lsmIndex .getStats ();
91- assertThat (stats .get ("deltaVectorsCount" )).isGreaterThanOrEqualTo (1L );
91+ // With live builder: vector goes directly to graph (deltaVectorsCount may be 0)
92+ // Without live builder: vector goes to delta buffer (deltaVectorsCount >= 1)
93+ // Either way, the vector should be findable in the next search
9294
93- // Search again — the new vector should appear via delta scan
95+ // Search again — the new vector should appear ( via delta scan or live graph)
9496 results = lsmIndex .findNeighborsFromVector (queryVector , 10 );
9597 assertThat (results ).isNotEmpty ();
9698
@@ -197,18 +199,20 @@ CREATE INDEX ON Item (vector) LSM_VECTOR
197199 database .command ("sql" , "INSERT INTO Item SET vector = ?" , (Object ) generateRandomVector (random ));
198200 });
199201
200- assertThat (lsmIndex .getStats ().get ("deltaVectorsCount" )).isGreaterThanOrEqualTo (3L );
202+ // With live builder: vectors go directly to graph (delta may be 0)
203+ // Without live builder: delta >= 3, then cleared after rebuild
201204
202- // Search triggers rebuild (small graph < 1000 → synchronous)
205+ // Search triggers rebuild (small graph < 1000 → synchronous) if using old path
203206 lsmIndex .findNeighborsFromVector (queryVector , 5 );
204207
205- // After synchronous rebuild, delta should be empty
208+ // After rebuild or with live builder , delta should be empty (vectors are in the graph)
206209 assertThat (lsmIndex .getStats ().get ("deltaVectorsCount" )).isEqualTo (0L );
207210 }
208211
209212 @ Test
210213 void ridFilterAppliesToDelta () {
211- database .getConfiguration ().setValue (GlobalConfiguration .VECTOR_INDEX_MUTATIONS_BEFORE_REBUILD , 1000 );
214+ // High threshold to prevent automatic rebuild which changes ordinal mapping
215+ database .getConfiguration ().setValue (GlobalConfiguration .VECTOR_INDEX_MUTATIONS_BEFORE_REBUILD , 100_000 );
212216
213217 database .transaction (() -> {
214218 database .getSchema ().createVertexType ("Item" );
@@ -246,12 +250,19 @@ CREATE INDEX ON Item (vector) LSM_VECTOR
246250 database .command ("sql" , "INSERT INTO Item SET vector = ?" , (Object ) nearVector );
247251 });
248252
249- // Search with allowedRIDs that does NOT include the new vector's RID
250- // First, find the new vector's RID
251- List <Pair <RID , Float >> allResults = lsmIndex .findNeighborsFromVector (queryVector , 10 );
252- final RID nearRID = allResults .get (0 ).getFirst ();
253-
254- // Build allowed set without the near vector
253+ // Find the nearVector's RID by looking for vector[0] == 998.0
254+ List <Pair <RID , Float >> allResults = lsmIndex .findNeighborsFromVector (queryVector , 11 );
255+ RID nearRID = null ;
256+ for (final Pair <RID , Float > r : allResults ) {
257+ final Object v = database .lookupByRID (r .getFirst (), true ).asDocument ().get ("vector" );
258+ if (v instanceof float [] fv && fv [0 ] == 998.0f ) {
259+ nearRID = r .getFirst ();
260+ break ;
261+ }
262+ }
263+ assertThat (nearRID ).as ("Should find the nearVector in results" ).isNotNull ();
264+
265+ // Build allowed set of ALL RIDs from the initial 10 vectors (excluding nearVector)
255266 final Set <RID > allowedRIDs = new HashSet <>();
256267 for (final Pair <RID , Float > r : allResults )
257268 if (!r .getFirst ().equals (nearRID ))
@@ -260,7 +271,7 @@ CREATE INDEX ON Item (vector) LSM_VECTOR
260271 // Search with filter — nearVector should be excluded
261272 final List <Pair <RID , Float >> filteredResults = lsmIndex .findNeighborsFromVector (queryVector , 10 , allowedRIDs );
262273 for (final Pair <RID , Float > r : filteredResults )
263- assertThat (r .getFirst ()).isNotEqualTo (nearRID );
274+ assertThat (r .getFirst ()).as ( "Filtered results should not contain nearVector" ). isNotEqualTo (nearRID );
264275 }
265276
266277 @ Test
0 commit comments