Skip to main content

About this widget

Objects conforming to the Searcher protocol manage the search sessions. Algolia provides you with several out of the box searchers to help build your InstantSearch experience:
  • HitsSearcher. Searches a single index.
  • FacetSearcher. Searches for facet values.
  • MultiSearcher. Aggregates the hits and facet searchers. This is useful for a federated search, or query suggestions .

Examples

Instantiate a HitsSearcher.
Swift
let searcher = HitsSearcher(appID: "YourApplicationID",
                            apiKey: "YourSearchOnlyApiKey",
                            indexName: "index_name",
                            isAutoSendingHitsViewEvents: true)
Instantiate a FacetSearcher.
Swift
let searcher = FacetSearcher(appID: "YourApplicationID",
                             apiKey: "YourSearchOnlyApiKey",
                             indexName: "index_name",
                             facetName: "facet_name")
Instantiate a MultiSearcher.
Swift
let searcher = MultiSearcher(appID: "YourApplicationID",
                             apiKey: "YourSearchOnlyApiKey")
searcher.addHitsSearcher(indexName: "index_name1")
searcher.addFacetsSearcher(indexName: "index_name1",
                            attribute: "facet_name")
searcher.addHitsSearcher(indexName: "index_name2")

HitsSearcher

indexName
String
required
The index to search.
Swift
let searcher = HitsSearcher(appID: "YourApplicationID",
                            apiKey: "YourSearchOnlyApiKey",
                            indexName: "index_name")
query
Query
default:"Query()"
The query used when doing a search.
Swift
let query = Query()
query.analytics = true
let searcher = HitsSearcher(appID: "YourApplicationID",
                            apiKey: "YourSearchOnlyApiKey",
                            indexName: "index_name",
                            query: query)
isAutoSendingHitsViewEvents
Bool
default:false
since: v7.26.2
Whether to automatically send view events for hits.
Swift
let searcher = HitsSearcher(appID: "YourApplicationID",
                            apiKey: "YourSearchOnlyApiKey",
                            indexName: "index_name",
                            isAutoSendingHitsViewEvents: true)

FacetSearcher

indexName
String
required
The index to search into.
Swift
let searcher = FacetSearcher(appID: "YourApplicationID",
                             apiKey: "YourSearchOnlyApiKey",
                             indexName: "index_name")
facetName
String
required
The facet name to search into when doing search for facet values.
Swift
let searcher = FacetSearcher(appID: "YourApplicationID",
                             apiKey: "YourSearchOnlyApiKey",
                             indexName: "index_name",
                             facetName: "facet_name")
query
Query
default:"Query()"
The query used when doing a search.
Swift
let query = Query()
query.analytics = true
let searcher = FacetSearcher(appID: "YourApplicationID",
                             apiKey: "YourSearchOnlyApiKey",
                             indexName: "index_name",
                             query: query)

Methods

Triggers the search. Notifies all listeners of the results.
Swift
searcher.search()
cancel
Cancels all ongoing search requests.
Swift
searcher.cancel()

Events

isLoading
Triggered when the Searcher starts or finishes query execution.
Swift
searcher.isLoading.subscribe(with: self) { (_, isLoading) in

}
onQueryChanged
Triggered when the query text is modified.
Swift
searcher.onQueryChanged.subscribe(with: self) { (_, query) in

}
onResults
Triggered when a new search result is received.
Swift
searcher.onResults.subscribe(with: self) { (_, results) in

}
onError
Triggered when a new error is received.
Swift
searcher.onError.subscribe(with: self) { (_, args) in
  let (query, error) = args

}
I