Suchvorschläge

Vorgeschlagene Suchanfragen erhalten

Rufen Sie die Methode getSearchSuggestions für ContextualSearchRuntime auf, um Suchvorschläge zu erhalten. Diese Methode verwendet eine einzelne GetSearchSuggestionsOptions, um den Text anzugeben, der verwendet werden soll, um Suchvorschläge zu erhalten.

Das zurückgegebene SearchSuggestions-Objekt enthält keine zugänglichen Attribute. Sie enthält alle erforderlichen Informationen für Suchvorschläge, ist ansonsten aber undurchsichtig.

In Swift wird der Swift-Parallelisierungsstil verwendet, in Objective-C eine Callback-Funktion.

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.
                            }];

Standortbasierte Suchvorschläge erhalten

Die getSearchSuggestions-Anfrage unterstützt auch standortbasierte Suchvorschläge. Erstellen Sie ein GetSearchSuggestionsOptions-Objekt mit einem LocationSuggestionsContext.

So erstellen Sie die LocationSuggestionsContext-Klasse:

  1. (Erforderlich) Legen Sie latitude, longitude und radiusMeters so fest, dass sie dem angeforderten Bereich entsprechen.
  2. Optional: Legen Sie startTime so fest, dass es mit dem angefragten Zeitpunkt übereinstimmt, zu dem die Suchvorschläge angewendet werden sollen.
  3. Optional: Legen Sie die geoTypes-Liste mit den angeforderten geografischen Typen fest. Die angegebenen Typen werden verwendet, um das Ranking und die Filterung der vom Dienst zurückgegebenen Ergebnisse anzupassen. Die unterstützten Werte sind unter LocationSuggestionsContext dokumentiert.

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.
                            }];

Display

Verwenden Sie die folgenden Methoden, um Chips für Suchvorschläge anzuzeigen. Der Stil variiert je nachdem, ob Sie UIKit oder SwiftUI verwenden.

Swift UIKit

Chips mit Suchvorschlägen lassen sich mit SearchSuggestionsViewController anzeigen.

// 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

Mit dem SearchSuggestionsViewController können Sie Suchvorschlag-Chips anzeigen.

// 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

Suchvorschläge können mit einer SearchSuggestionsView angezeigt werden.

SearchSuggestionsView(suggestions: suggestions, options: options)

Nächster Schritt: Suchergebnisse anzeigen