Skip to content

Commit 01eac7f

Browse files
raed667dhayab
andauthored
feat(recommend): add "Looking Similar" model (#1469)
* feat(recommend): add Looking Similar model --------- Co-authored-by: Dhaya <[email protected]>
1 parent b88a726 commit 01eac7f

File tree

8 files changed

+41
-1
lines changed

8 files changed

+41
-1
lines changed

packages/recommend/src/builds/browser.ts

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { createUserAgent } from '@algolia/transporter';
1010
import { createRecommendClient } from '../createRecommendClient';
1111
import {
1212
getFrequentlyBoughtTogether,
13+
getLookingSimilar,
1314
getRecommendations,
1415
getRelatedProducts,
1516
getTrendingFacets,
@@ -55,6 +56,7 @@ export default function recommend(
5556
getRelatedProducts,
5657
getTrendingFacets,
5758
getTrendingItems,
59+
getLookingSimilar,
5860
},
5961
});
6062
}

packages/recommend/src/builds/node.ts

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { createUserAgent } from '@algolia/transporter';
99
import { createRecommendClient } from '../createRecommendClient';
1010
import {
1111
getFrequentlyBoughtTogether,
12+
getLookingSimilar,
1213
getRecommendations,
1314
getRelatedProducts,
1415
getTrendingFacets,
@@ -49,6 +50,7 @@ export default function recommend(
4950
getRelatedProducts,
5051
getTrendingFacets,
5152
getTrendingItems,
53+
getLookingSimilar,
5254
},
5355
});
5456
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { BaseRecommendClient, LookingSimilarQuery, WithRecommendMethods } from '../types';
2+
import { getRecommendations } from './getRecommendations';
3+
4+
type GetLookingSimilar = (
5+
base: BaseRecommendClient
6+
) => WithRecommendMethods<BaseRecommendClient>['getLookingSimilar'];
7+
8+
export const getLookingSimilar: GetLookingSimilar = base => {
9+
return (queries: readonly LookingSimilarQuery[], requestOptions) => {
10+
return getRecommendations(base)(
11+
queries.map(query => ({
12+
...query,
13+
model: 'looking-similar',
14+
})),
15+
requestOptions
16+
);
17+
};
18+
};

packages/recommend/src/methods/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@ export * from './getRecommendations';
77
export * from './getRelatedProducts';
88
export * from './getTrendingFacets';
99
export * from './getTrendingItems';
10+
export * from './getLookingSimilar';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { RecommendationsQuery } from './RecommendationsQuery';
2+
3+
export type LookingSimilarQuery = Omit<RecommendationsQuery, 'model'>;
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
11
export type TrendingModel = 'trending-items' | 'trending-facets';
2-
export type RecommendModel = 'related-products' | 'bought-together' | TrendingModel;
2+
export type RecommendModel =
3+
| 'related-products'
4+
| 'bought-together'
5+
| 'looking-similar'
6+
| TrendingModel;

packages/recommend/src/types/WithRecommendMethods.ts

+9
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { MultipleQueriesResponse, SearchOptions } from '@algolia/client-search';
22
import { RequestOptions } from '@algolia/transporter';
33

44
import { FrequentlyBoughtTogetherQuery } from './FrequentlyBoughtTogetherQuery';
5+
import { LookingSimilarQuery } from './LookingSimilarQuery';
56
import { RecommendationsQuery } from './RecommendationsQuery';
67
import { RelatedProductsQuery } from './RelatedProductsQuery';
78
import { TrendingFacetsQuery } from './TrendingFacetsQuery';
@@ -48,4 +49,12 @@ export type WithRecommendMethods<TType> = TType & {
4849
queries: readonly TrendingFacetsQuery[],
4950
requestOptions?: RequestOptions & SearchOptions
5051
) => Readonly<Promise<MultipleQueriesResponse<TObject>>>;
52+
53+
/**
54+
* Returns Looking Similar
55+
*/
56+
readonly getLookingSimilar: <TObject>(
57+
queries: readonly LookingSimilarQuery[],
58+
requestOptions?: RequestOptions & SearchOptions
59+
) => Readonly<Promise<MultipleQueriesResponse<TObject>>>;
5160
};

packages/recommend/src/types/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@ export * from './TrendingFacetsQuery';
1414
export * from './TrendingItemsQuery';
1515
export * from './TrendingQuery';
1616
export * from './WithRecommendMethods';
17+
export * from './LookingSimilarQuery';

0 commit comments

Comments
 (0)