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 building a federated search, or query suggestions.
Examples
Instantiate a HitsSearcher.
let searcher = HitsSearcher ( appID : "YourApplicationID" ,
apiKey : "YourSearchOnlyApiKey" ,
indexName : "index_name" ,
isAutoSendingHitsViewEvents : true )
Instantiate a FacetSearcher.
let searcher = FacetSearcher ( appID : "YourApplicationID" ,
apiKey : "YourSearchOnlyApiKey" ,
indexName : "index_name" ,
facetName : "facet_name" )
Instantiate a MultiSearcher.
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
The index to search. let searcher = HitsSearcher ( appID : "YourApplicationID" ,
apiKey : "YourSearchOnlyApiKey" ,
indexName : "index_name" )
A search query . let query = Query ()
query. analytics = true
let searcher = HitsSearcher ( appID : "YourApplicationID" ,
apiKey : "YourSearchOnlyApiKey" ,
indexName : "index_name" ,
query : query)
isAutoSendingHitsViewEvents
Whether to automatically send view events for hits. let searcher = HitsSearcher ( appID : "YourApplicationID" ,
apiKey : "YourSearchOnlyApiKey" ,
indexName : "index_name" ,
isAutoSendingHitsViewEvents : true )
FacetSearcher
The index to search into. let searcher = FacetSearcher ( appID : "YourApplicationID" ,
apiKey : "YourSearchOnlyApiKey" ,
indexName : "index_name" )
The facet name to search into when doing search for facet values. let searcher = FacetSearcher ( appID : "YourApplicationID" ,
apiKey : "YourSearchOnlyApiKey" ,
indexName : "index_name" ,
facetName : "facet_name" )
The query used when doing a search. 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.
Cancels every ongoing search request .
Events
Triggered when the Searcher starts or finishes query execution. searcher. isLoading . subscribe ( with : self ) { ( _ , isLoading) in
}
Triggered when the query text is modified. searcher. onQueryChanged . subscribe ( with : self ) { ( _ , query) in
}
Triggered when a new search result is received. searcher. onResults . subscribe ( with : self ) { ( _ , results) in
}
Triggered when a new error is received. searcher. onError . subscribe ( with : self ) { ( _ , args) in
let (query, error) = args
}
Last modified on January 28, 2026