@@ -14,6 +14,39 @@ const index = {
1414 uid : 'movies_test' ,
1515} ;
1616
17+ const datasetSimilarSearch = [
18+ {
19+ title : 'Shazam!' ,
20+ release_year : 2019 ,
21+ id : '287947' ,
22+ _vectors : { manual : [ 0.8 , 0.4 , - 0.5 ] } ,
23+ } ,
24+ {
25+ title : 'Captain Marvel' ,
26+ release_year : 2019 ,
27+ id : '299537' ,
28+ _vectors : { manual : [ 0.6 , 0.8 , - 0.2 ] } ,
29+ } ,
30+ {
31+ title : 'Escape Room' ,
32+ release_year : 2019 ,
33+ id : '522681' ,
34+ _vectors : { manual : [ 0.1 , 0.6 , 0.8 ] } ,
35+ } ,
36+ {
37+ title : 'How to Train Your Dragon: The Hidden World' ,
38+ release_year : 2019 ,
39+ id : '166428' ,
40+ _vectors : { manual : [ 0.7 , 0.7 , - 0.4 ] } ,
41+ } ,
42+ {
43+ title : 'All Quiet on the Western Front' ,
44+ release_year : 1930 ,
45+ id : '143' ,
46+ _vectors : { manual : [ - 0.5 , 0.3 , 0.85 ] } ,
47+ } ,
48+ ] ;
49+
1750jest . setTimeout ( 100 * 1000 ) ;
1851
1952afterAll ( ( ) => {
@@ -223,6 +256,38 @@ describe.each([{ permission: 'Master' }, { permission: 'Admin' }])(
223256
224257 expect ( response ) . toEqual ( null ) ;
225258 } ) ;
259+
260+ test ( `${ permission } key: search for similar documents` , async ( ) => {
261+ const client = await getClient ( permission ) ;
262+
263+ const newEmbedder : Embedders = {
264+ manual : {
265+ source : 'userProvided' ,
266+ dimensions : 3 ,
267+ } ,
268+ } ;
269+ const { taskUid : updateEmbeddersTask } : EnqueuedTask = await client
270+ . index ( index . uid )
271+ . updateEmbedders ( newEmbedder ) ;
272+
273+ await client . waitForTask ( updateEmbeddersTask ) ;
274+
275+ const { taskUid : documentAdditionTask } = await client
276+ . index ( index . uid )
277+ . addDocuments ( datasetSimilarSearch ) ;
278+
279+ await client . waitForTask ( documentAdditionTask ) ;
280+
281+ const response = await client . index ( index . uid ) . searchSimilarDocuments ( {
282+ id : '143' ,
283+ } ) ;
284+
285+ expect ( response ) . toHaveProperty ( 'hits' ) ;
286+ expect ( response . hits . length ) . toEqual ( 4 ) ;
287+ expect ( response ) . toHaveProperty ( 'offset' , 0 ) ;
288+ expect ( response ) . toHaveProperty ( 'limit' , 20 ) ;
289+ expect ( response ) . toHaveProperty ( 'estimatedTotalHits' , 4 ) ;
290+ } ) ;
226291 } ,
227292) ;
228293
0 commit comments