@@ -1116,6 +1116,36 @@ public void testSimilarDocuments() throws Exception {
11161116 assertThat (hits .get (3 ).get ("title" ), is ("Shazam!" ));
11171117 }
11181118
1119+ /** Test vector search */
1120+ @ Test
1121+ public void testVectorSearch () throws Exception {
1122+ String indexUid = "testVectorSearch" ;
1123+ Index index = client .index (indexUid );
1124+ HashMap <String , Embedder > embedders = new HashMap <>();
1125+ embedders .put (
1126+ "manual" , new Embedder ().setSource (EmbedderSource .USER_PROVIDED ).setDimensions (3 ));
1127+
1128+ Settings settings = new Settings ();
1129+ settings .setEmbedders (embedders );
1130+
1131+ index .updateSettings (settings );
1132+
1133+ TestData <Movie > testData = this .getTestData (VECTOR_MOVIES , Movie .class );
1134+ TaskInfo task = index .addDocuments (testData .getRaw ());
1135+
1136+ index .waitForTask (task .getTaskUid ());
1137+
1138+ SearchRequest searchRequest =
1139+ SearchRequest .builder ().vector (new Double [] {0.1 , 0.6 , 0.8 }).build ();
1140+
1141+ SearchResult searchResult = (SearchResult ) index .search (searchRequest );
1142+
1143+ assertThat (searchResult .getHits (), hasSize (5 ));
1144+ // The most similar document should be "Escape Room" since its vector [0.1, 0.6, 0.8]
1145+ assertThat (searchResult .getHits ().get (0 ).get ("id" ), is ("522681" ));
1146+ assertThat (searchResult .getHits ().get (0 ).get ("title" ), is ("Escape Room" ));
1147+ }
1148+
11191149 /** Test Search with locales */
11201150 @ Test
11211151 public void testSearchWithLocales () throws Exception {
0 commit comments