2323import io .weaviate .client6 .v1 .api .WeaviateClient ;
2424import io .weaviate .client6 .v1 .api .collections .Property ;
2525import io .weaviate .client6 .v1 .api .collections .ReferenceProperty ;
26+ import io .weaviate .client6 .v1 .api .collections .Reranker ;
2627import io .weaviate .client6 .v1 .api .collections .VectorConfig ;
2728import io .weaviate .client6 .v1 .api .collections .Vectors ;
2829import io .weaviate .client6 .v1 .api .collections .WeaviateMetadata ;
2930import io .weaviate .client6 .v1 .api .collections .data .Reference ;
3031import io .weaviate .client6 .v1 .api .collections .data .WriteWeaviateObject ;
31- import io .weaviate .client6 .v1 .api .collections .generate .GenerativeObject ;
32+ import io .weaviate .client6 .v1 .api .collections .generate .
3233import io .weaviate .client6 .v1 .api .collections .generate .TaskOutput ;
3334import io .weaviate .client6 .v1 .api .collections .generative .DummyGenerative ;
3435import io .weaviate .client6 .v1 .api .collections .query .Filter ;
3738import io .weaviate .client6 .v1 .api .collections .query .QueryMetadata ;
3839import io .weaviate .client6 .v1 .api .collections .query .QueryResponseGroup ;
3940import io .weaviate .client6 .v1 .api .collections .query .ReadWeaviateObject ;
41+ import io .weaviate .client6 .v1 .api .collections .query .Rerank ;
4042import io .weaviate .client6 .v1 .api .collections .query .SortBy ;
4143import io .weaviate .client6 .v1 .api .collections .query .Target ;
44+ import io .weaviate .client6 .v1 .api .collections .rerankers .DummyReranker ;
4245import io .weaviate .client6 .v1 .api .collections .vectorindex .Hnsw ;
4346import io .weaviate .client6 .v1 .api .collections .vectorindex .MultiVector ;
4447import io .weaviate .containers .Container ;
@@ -52,7 +55,7 @@ public class SearchITest extends ConcurrentTest {
5255 Weaviate .custom ()
5356 .withModel2VecUrl (Model2Vec .URL )
5457 .withImageInference (Img2VecNeural .URL , Img2VecNeural .MODULE )
55- .addModules ("generative-dummy" )
58+ .addModules (Generative . Kind . DUMMY . jsonValue (), Reranker . Kind . DUMMY . jsonValue () )
5659 .build (),
5760 Container .IMG2VEC_NEURAL ,
5861 Container .MODEL2VEC );
@@ -765,4 +768,30 @@ public void test_maxGrpcMessageSize() throws Exception {
765768 }).isInstanceOf (io .grpc .StatusRuntimeException .class );
766769 }
767770 }
771+
772+ @ Test
773+ public void test_rerankQueries () throws IOException {
774+ // Arrange
775+ var nsThigns = ns ("Things" );
776+
777+ var things = client .collections .create (nsThigns ,
778+ c -> c
779+ .properties (Property .text ("title" ), Property .integer ("price" ))
780+ .vectorConfig (VectorConfig .text2vecModel2Vec (
781+ t2v -> t2v .sourceProperties ("title" , "price" )))
782+ .rerankerModules (new DummyReranker ()));
783+
784+ things .data .insertMany (
785+ Map .of ("title" , "Ergonomic chair" , "price" , 269 ),
786+ Map .of ("title" , "Height-adjustable desk" , "price" , 349 ));
787+
788+ // Act
789+ var got = things .query .nearText (
790+ "office supplies" ,
791+ nt -> nt .rerank (Rerank .by ("price" ,
792+ rank -> rank .query ("cheaper first" ))));
793+
794+ // Assert: ranking not important really, just that the request was valid.
795+ Assertions .assertThat (got .objects ()).hasSize (2 );
796+ }
768797}
0 commit comments