Skip to content

Commit 084af1e

Browse files
generallAnush008
andauthored
test: order-by in scroll (#42)
Co-authored-by: Anush <[email protected]>
1 parent 38c5e26 commit 084af1e

File tree

5 files changed

+77
-35
lines changed

5 files changed

+77
-35
lines changed

.idea/gradle.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 5 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# The version of qdrant to use to download protos
2-
qdrantProtosVersion=v1.9.2
2+
qdrantProtosVersion=v1.9.5
33

44
# The version of qdrant docker image to run integration tests against
5-
qdrantVersion=v1.9.2
5+
qdrantVersion=v1.9.5
66

77
# The version of the client to generate
88
packageVersion=1.9.1

src/test/java/io/qdrant/client/PointsTest.java

Lines changed: 68 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
import java.util.concurrent.ExecutionException;
1616
import java.util.concurrent.TimeUnit;
1717

18+
import io.qdrant.client.grpc.Collections;
19+
import io.qdrant.client.grpc.Points;
1820
import org.junit.jupiter.api.AfterEach;
1921
import org.junit.jupiter.api.BeforeEach;
2022
import org.junit.jupiter.api.Test;
@@ -381,6 +383,44 @@ public void scroll() throws ExecutionException, InterruptedException {
381383
assertFalse(scrollResponse.hasNextPageOffset());
382384
}
383385

386+
@Test
387+
public void scrollWithOrdering() throws ExecutionException, InterruptedException {
388+
createAndSeedCollection(testName);
389+
390+
Collections.PayloadIndexParams params = Collections.PayloadIndexParams.newBuilder()
391+
.setIntegerIndexParams(
392+
Collections.IntegerIndexParams.newBuilder().setLookup(false).setRange(true).build())
393+
.build();
394+
395+
UpdateResult resultIndex = client.createPayloadIndexAsync(
396+
testName,
397+
"bar",
398+
PayloadSchemaType.Integer,
399+
params,
400+
true,
401+
null,
402+
null).get();
403+
404+
assertEquals(UpdateStatus.Completed, resultIndex.getStatus());
405+
406+
CollectionInfo collectionInfo = client.getCollectionInfoAsync(testName).get();
407+
assertEquals(ImmutableSet.of("bar"), collectionInfo.getPayloadSchemaMap().keySet());
408+
409+
ScrollResponse scrollResponse = client.scrollAsync(ScrollPoints.newBuilder()
410+
.setCollectionName(testName)
411+
.setLimit(1)
412+
.setOrderBy(Points.OrderBy.newBuilder()
413+
.setDirection(Points.Direction.Desc)
414+
.setKey("bar").build())
415+
.build()
416+
).get();
417+
418+
419+
assertEquals(1, scrollResponse.getResultCount());
420+
assertFalse(scrollResponse.hasNextPageOffset());
421+
assertEquals(scrollResponse.getResult(0).getId(), id(9));
422+
}
423+
384424
@Test
385425
public void recommend() throws ExecutionException, InterruptedException {
386426
createAndSeedCollection(testName);
@@ -458,10 +498,10 @@ public void discover() throws ExecutionException, InterruptedException {
458498
createAndSeedCollection(testName);
459499

460500
List<ScoredPoint> points = client.discoverAsync(DiscoverPoints.newBuilder()
461-
.setCollectionName(testName)
462-
.setTarget(targetVector(vector(ImmutableList.of(10.4f, 11.4f))))
463-
.setLimit(1)
464-
.build()).get();
501+
.setCollectionName(testName)
502+
.setTarget(targetVector(vector(ImmutableList.of(10.4f, 11.4f))))
503+
.setLimit(1)
504+
.build()).get();
465505

466506
assertEquals(1, points.size());
467507
assertEquals(id(9), points.get(0).getId());
@@ -472,19 +512,19 @@ public void discoverBatch() throws ExecutionException, InterruptedException {
472512
createAndSeedCollection(testName);
473513

474514
List<BatchResult> batchResults = client.discoverBatchAsync(
475-
testName,
476-
ImmutableList.of(
477-
DiscoverPoints.newBuilder()
478-
.setCollectionName(testName)
479-
.setTarget(targetVector(vector(ImmutableList.of(10.4f, 11.4f))))
480-
.setLimit(1)
481-
.build(),
482-
DiscoverPoints.newBuilder()
483-
.setCollectionName(testName)
484-
.setTarget(targetVector(vector(ImmutableList.of(3.5f, 4.5f))))
485-
.setLimit(1)
486-
.build()),
487-
null).get();
515+
testName,
516+
ImmutableList.of(
517+
DiscoverPoints.newBuilder()
518+
.setCollectionName(testName)
519+
.setTarget(targetVector(vector(ImmutableList.of(10.4f, 11.4f))))
520+
.setLimit(1)
521+
.build(),
522+
DiscoverPoints.newBuilder()
523+
.setCollectionName(testName)
524+
.setTarget(targetVector(vector(ImmutableList.of(3.5f, 4.5f))))
525+
.setLimit(1)
526+
.build()),
527+
null).get();
488528

489529
assertEquals(2, batchResults.size());
490530
BatchResult result = batchResults.get(0);
@@ -573,17 +613,17 @@ public void batchPointUpdate() throws ExecutionException, InterruptedException {
573613
createAndSeedCollection(testName);
574614

575615
List<PointsUpdateOperation> operations = List.of(
576-
PointsUpdateOperation.newBuilder()
577-
.setClearPayload(ClearPayload.newBuilder().setPoints(
578-
PointsSelector.newBuilder().setPoints(PointsIdsList.newBuilder().addIds(id(9))))
579-
.build())
580-
.build(),
581-
PointsUpdateOperation.newBuilder()
582-
.setUpdateVectors(UpdateVectors.newBuilder()
583-
.addPoints(PointVectors.newBuilder()
584-
.setId(id(9))
585-
.setVectors(vectors(0.6f, 0.7f))))
586-
.build());
616+
PointsUpdateOperation.newBuilder()
617+
.setClearPayload(ClearPayload.newBuilder().setPoints(
618+
PointsSelector.newBuilder().setPoints(PointsIdsList.newBuilder().addIds(id(9))))
619+
.build())
620+
.build(),
621+
PointsUpdateOperation.newBuilder()
622+
.setUpdateVectors(UpdateVectors.newBuilder()
623+
.addPoints(PointVectors.newBuilder()
624+
.setId(id(9))
625+
.setVectors(vectors(0.6f, 0.7f))))
626+
.build());
587627

588628
List<UpdateResult> response = client.batchUpdateAsync(testName, operations).get();
589629

0 commit comments

Comments
 (0)