Suggestions de recherche

Obtenir des suggestions de recherches

Pour obtenir des suggestions de recherche, appelez la méthode getSearchSuggestions sur ContextualSearchRuntime. Cette méthode nécessite un seul élément GetSearchSuggestionsOptions dans lequel vous pouvez spécifier le texte à utiliser pour obtenir des suggestions de recherche.

L'objet SearchSuggestions renvoyé ne contient aucune propriété accessible. Il contient toutes les informations nécessaires pour afficher les suggestions de recherche, mais est par ailleurs opaque.

Swift utilise le style de simultanéité Swift, tandis qu'Objective-C utilise une fonction de rappel.

Swift

getSearchSuggestions(withOptions:)

Task {
    let suggestions = try await searchRuntime.getSearchSuggestions(
            withOptions: GetSearchSuggestionsOptions(withTextContext:['Sample Query', 'Another query string']))
}

Objective-C

getSearchSuggestionsWithOptions

  [searchRuntime
      getSearchSuggestionsWithOptions:
            [[GetSearchSuggestionsOptions alloc] initWithTextContext: @[@'Sample Query', @'Another query string' ]]
                             completionHandler:^(SearchSuggestions *_Nullable suggestions,
                                                 NSError *_Nullable error) {
                              // error will be not null if there is an error.
                              // On success, suggestions will be non null.
                            }];

Obtenir des suggestions de recherche basées sur la position

La requête getSearchSuggestions accepte également les suggestions de recherche basées sur la localisation. Créez un objet GetSearchSuggestionsOptions avec un LocationSuggestionsContext.

Pour créer la classe LocationSuggestionsContext, procédez comme suit :

  1. (Obligatoire) Définissez latitude, longitude et radiusMeters pour qu'ils correspondent à la zone demandée.
  2. (Facultatif) Définissez startTime sur la date et l'heure demandées auxquelles les suggestions de recherche doivent s'appliquer.
  3. (Facultatif) Définissez la liste geoTypes avec les types géographiques demandés. Les types fournis sont utilisés pour ajuster le classement et le filtrage des résultats renvoyés par le service. Les valeurs acceptées sont documentées dans LocationSuggestionsContext.

Swift

getSearchSuggestions(withOptions:)

Task {
    let locationContext: LocationSuggestionsContext = {
      let context = LocationSuggestionsContext()
      context.latitude = 40.748595
      context.longitude = -73.992365
      context.radiusMeters = 2500
      context.startTime = try?
        Date.ISO8601FormatStyle.iso8601.parse("2024-03-14T19:20:30.000+02:00")
      context.geoTypes = ["restaurant", "cafe"]
      return context
    }()
    let suggestions = try await searchRuntime.getSearchSuggestions(
            withOptions: GetSearchSuggestionsOptions(locationContext: [
              locationContext
            ]))
}

Objective-C

getSearchSuggestionsWithOptions


  LocationSuggestionsContext *locationContext;
  locationContext = [[LocationSuggestionsContext alloc] init];
  locationContext.latitude = 40.748595;
  locationContext.longitude = -73.992365;
  locationContext.radiusMeters = @2500;
  [searchRuntime
      getSearchSuggestionsWithOptions:
            [[GetSearchSuggestionsOptions alloc] initWithLocationContext: locationContext]
                             completionHandler:^(SearchSuggestions *_Nullable suggestions,
                                                 NSError *_Nullable error) {
                              // error will be not null if there is an error.
                              // On success, suggestions will be non null.
                            }];

Écran

Pour afficher des chips de suggestions de recherche, utilisez les méthodes suivantes (le style varie si vous utilisez UIKit ou SwiftUI).

UIKit Swift

Affichez des chips de suggestion de recherche à l'aide de SearchSuggestionsViewController.

// Create the SearchSuggestionsViewController with specified display options.
var searchSuggestionsController = SearchSuggestionsViewController(options: viewOptions)
...
// Add the view controller to the existing view hierarchy
searchSuggestionsController.addToViewContoller(self)
view.addSubview(searchSuggestionsController.view)
...
// Assign a specific set of search suggestions to this view controller.
searchSuggestionsController.searchSuggestions = suggestions

Objective-C

Affichez des chips de suggestion de recherche à l'aide de SearchSuggestionsViewController.

// Create the SearchSuggestionsController with specified display options.
SearchSuggestionsViewController *_searchSuggestionsController =
      [[SearchSuggestionsViewController alloc] initWithOptions:_customizationOptions];
...
// Add the view controller to the existing view hierarchy
[_searchSuggestionsController addToViewController:self];
[self.view addSubview:_searchSuggestionsController.view];
...
// Assign a specific set of search suggestions to this view controller.
_searchSuggestionsController.searchSuggestions = suggestions

SwiftUI

Les suggestions de recherche peuvent être affichées avec une SearchSuggestionsView.

SearchSuggestionsView(suggestions: suggestions, options: options)

étape suivante : Afficher les résultats de recherche