Vorgeschlagene Suchanfragen abrufen
Rufen Sie die Methode getSearchSuggestions in ContextualSearchRuntime auf, um Suchvorschläge zu erhalten. Diese Methode verwendet ein einzelnes
GetSearchSuggestionsOptions
-Objekt, in dem Sie den Text angeben können, für den Sie Suchvorschläge erhalten möchten.
Das zurückgegebene SearchSuggestions-Objekt enthält keine zugänglichen Eigenschaften. Es enthält alle erforderlichen Informationen zum Rendern von Suchvorschlägen, ist aber ansonsten undurchsichtig.
Swift verwendet den Stil der Swift-Concurrency, Objective-C verwendet 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 abrufen
Die getSearchSuggestions-Anfrage unterstützt auch standortbasierte Suchvorschläge. Erstellen Sie ein GetSearchSuggestionsOptions-Objekt mit einem
LocationSuggestionsContext.
So erstellen Sie die Klasse LocationSuggestionsContext:
- (Erforderlich) Legen Sie
latitude,longitudeundradiusMetersso fest, dass sie dem angeforderten Bereich entsprechen. - (Optional) Legen Sie
startTimeso fest, dass sie der angeforderten Zeit entspricht, zu der die Suchvorschläge gelten sollen. - (Optional) Legen Sie die Liste
geoTypesmit 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.
}];
Anzeige
Verwenden Sie die folgenden Methoden, um Chips mit Suchvorschlägen anzuzeigen. Der Stil variiert je nachdem, ob Sie UIKit oder SwiftUI verwenden.
Swift UIKit
Verwenden Sie SearchSuggestionsViewController, um Chips mit Suchvorschlägen anzuzeigen.
// 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
Verwenden Sie SearchSuggestionsViewController, um Chips mit Suchvorschlägen anzuzeigen.
// 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)