- Add explicit support for tvOS in the Cocoapods pod spec. (In fact, tvOS has been supported for a while in our code, but somehow never made it to the pod spec.) Note: not supported by the offline mode.
- Add support for HTML documentation generation via Jazzy
- Fix behavior of the
exhaustiveFacetsCount
response field when using disjunctive faceting - Migrate the
User-Agent
HTTP header to a new, more parseable format; now also includes the operating system's version. - Change value of
ErrorDomain
constant. Note: not a breaking change unless you relied on the value itself. - Update documentation
- Expose last successful sync date (property
MirroredIndex.lastSuccessfulSyncDate
)
- New
multipleQueries()
method at index level - Fix cancellation of requests: in some edge cases, the completion handler could be called after cancellation
- Fix potential crash when cancelling requests (unsafe assertions were made)
The following changes are for the offline mode only:
- New offline fallback strategy. Warning: breaking change: preventive search no longer supported.
- Offline requests now also work for disjunctive faceting
- The
searchMirror()
method has been renamed tosearchOffline()
, for better consistency with the newly introducedsearchOnline()
method. - Improve detection of non-existent indices
- New
Client.isAlive()
method (/1/isalive
endpoint) - Completion handler is now mandatory for multiple queries. Warning: breaking change
- (#88) Fix passing of
strategy
parameter in multiple queries (should be POST instead of GET) - (#103) Fix URL encoding of path components (e.g. spaces in index names)
- Add test case for TCP connection dropping
- (#77) Support a list of languages as a value for the
removeStopWords
query parameter. Warning: The type of the corresponding property had to be degraded fromBool?
toAnyObject?
; as a consequence, the getter suffers from an incompatible change (but not the setter). - (#79) Support
aroundRadius=all
in query parameters - (#76) Support the
exactOnSingleWordQuery
query parameter - (#76) Support the
alternativesAsExact
query parameter - (#74) Support Swift 2.3
- (#75) Fix iTunes Connect submission issue when using Carthage: minimum iOS version is now 8.0
- Update documentation
- Fix OS X support in CocoaPods
- Support iOS 7.0
- Warning: Because CocoaPods uses dynamic frameworks and Swift is not supported in dynamic frameworks on iOS 7, iOS 7 support is not possible through CocoaPods.
- Warning: Due to unavailability of simulators earlier than iOS 8.1 in Xcode 7.3, iOS 7 remains untested.
- README updated
- [Test] Add test case for DNS time-out
- Offline mode. Note: requires the Algolia Search Offline Core library. Warning: beta version.
- Add tvOS target
- Restore Carthage support
- Add typed properties for query parameters
filters
andnumericFilters
- Shuffle host array at init time, for better load balancing
- Update documentation
- Fix unit tests: remove broken "keep alive" test case
This major version brings new features and bug fixes. In addition, a lot of refactoring has been performed to achieve better Objective-C bridging, better maintainability, as well as to align the Swift client with the other Algolia API clients.
As a consequence, the public interface has changed in an incompatible way. Please refer to our Migration Guide for detailed instructions.
- Allow arbitrary query parameters to be specified: the
Query
class provides low-level, untyped accessors in addition to the higher-level, typed properties. - Allow arbitrary HTTP headers to be specified (
Client.headers
) - Asynchronous requests are cancellable: asynchronous methods return an
NSOperation
instance, making it possible to callcancel()
on it. - Timeout settings now user-configurable
- Batch operation support
- Multiple queries
strategy
parameter support - Disjunctive faceting helper
- Delete by query helper
- Browse iterator helper (
BrowseIterator
)
- Asynchronous methods completion block argument renamed to
completionHandler
for better consistency with the system libraries (in particularNSURLSession
) - Align
Query
class parameters with the REST API - Remove operations requiring an admin API key. (The admin key should never be used on the client side.)
- Browse methods now only low-level. (For high-level iteration, use the
BrowseIterator
helper; see above.) - Remove accessors to deprecated HTTP headers
- Full Objective-C bridging: all features are now available from Objective-C.
- More consistent error handling
- Fix percent-escaping of query parameters in URLs
- Fix Swift 2.2 deprecation warnings
- HTTP headers can now be changed during the client's lifetime
- Minimize public interface
- Update documentation
- Add test cases
- Added support of snippet ellipsis query parameter
- Added support for optional tag filters
- Added support of multiple bounding box for geo-search
- Added support of polygon for geo-search
- Added support of automatic radius computation for geo-search
- Added support of disableTypoToleranceOnAttributes
- Fix
NSJSONSerialization
crashes
- Upgrade to Swift 2
- Fix crash when requesting with a poor connection
- Add
analyticsTags
- Objective-C support
- New
browseFrom
methods - Add search cache (disabled by default)
- Added support of grouping (
distinct=3
for example keep the 3 best hits for a distinct key)
- add copy constructor for
Query
- new browse method that takes a
Query
object
- rename
fullTextQuery
toquery
- new retry logic
- add new parameter on the Query:
setMinProximity
&setHighlightingTags
- add new method on the Query:
resetLocationParameters