11{ {#isSearchClient} }
22export 'extension/search.dart';
33export 'extension/wait_task.dart';
4- { {/isSearchClient} }
4+ { {/isSearchClient} }
5+ { {#isAlgoliasearchClient} }
6+ import 'package:algoliasearch/algoliasearch_lite.dart';
7+
8+ extension SearchClientExt on SearchClient {
9+ /// Perform a search operation targeting one index.
10+ Future< SearchResponse> searchIndex({
11+ required SearchForHits request,
12+ RequestOptions? requestOptions,
13+ } ) async {
14+ final response = await search(
15+ searchMethodParams: SearchMethodParams(requests: [request]),
16+ requestOptions: requestOptions,
17+ );
18+ return SearchResponse.fromJson(response.results.first);
19+ }
20+
21+ /// Calls the `search` method but with certainty that we will only request
22+ /// Algolia records (hits).
23+ Future<Iterable <SearchResponse >> searchForHits({
24+ required List< SearchForHits> requests,
25+ SearchStrategy? strategy,
26+ RequestOptions? requestOptions,
27+ } ) async {
28+ final request = SearchMethodParams(requests: requests, strategy: strategy);
29+ return search(searchMethodParams: request, requestOptions: requestOptions)
30+ .then((res) => res.results.map((e) => SearchResponse.fromJson(e)));
31+ }
32+
33+ /// Calls the `search` method but with certainty that we will only request
34+ /// Algolia facets.
35+ Future<Iterable <SearchForFacetValuesResponse >> searchForFacets({
36+ required List< SearchForFacets> requests,
37+ SearchStrategy? strategy,
38+ RequestOptions? requestOptions,
39+ } ) async {
40+ final request = SearchMethodParams(requests: requests, strategy: strategy);
41+ return search(searchMethodParams: request, requestOptions: requestOptions)
42+ .then((res) =>
43+ res.results.map((e) => SearchForFacetValuesResponse.fromJson(e)));
44+ }
45+ }
46+ { {/isAlgoliasearchClient} }
0 commit comments