This release contains new features, performance improvements and important bug fixes.
New Features
- Geosearch: Use the geopoint data type to index locations, filter and sort on them. We support filtering on records within a given radius and as well as within any arbitrarily defined geo polygon.
- Wrap literal strings in filter_by values using backticks to ensure that the commas in filter values don't get parsed as a list separator. Example: filter_by: primary_artist_name:=[`Apple, Inc.`]
- Support exclude / not equals operator for filtering string and boolean facets. Example: filter_by=author:!= JK Rowling
- Ability to turn off prefix search on a per field basis. For example, if you are querying 3 fields and want to enable prefix searching only on the first field, use `?prefix=true,false,false`. The order should match the order in `query_by`.
- Ability to turn off typo tolerance on a per field basis. For example, if you are querying 3 fields and want to disable typo tolerance on the first field, use `?num_typos=0,2,2`. The order should match the order in `query_by`.
- You can now highlight fields that you don't query for. Use ?highlight_fields=title to specify a custom list of fields that should be highlighted.
- Add `filter_by`, `include_fields` and `exclude_fields` options to documents/export endpoint.
Enhancements
- Increased maximum supported length of HTTP query string to 4K characters: if you wish to send larger payloads, use the multi-search end-point.
- Accept null values for optional fields.
- Support for indexing pre-segmented text: you can now index content from any logographic language into Typesense if you are able to segment / split the text into space-separated words yourself before indexing and querying. You should also set `?pre_segmented_query=true` during searching.
- If you have some overrides defined but want to disable all of them during query time, you can now do that by setting `?enable_overrides=false.`
Bug Fixes
- Fixed some edge cases with typo correction not finding the correct matches
- Ensure that exact matches are ranked above others. Set `?prioritize_exact_match=false` to disable this behavior.
- Fixed `collections:*` API key permission which was not previously being recognized by the authentication engine.
- Fixed float facets being displayed with imprecise precision when displayed as string.
Deprecations
- There is a change in the upsert behavior to conform to existing popular conventions: The upsert action now requires the whole document to be sent for indexing. If you wish to update part of a document, use the update action.
Download
Please download the appropriate binary archive for your operating system and architecture here: https://typesense.org/downloads/
**NOTE:** The new version is also available on [Typesense Cloud](https://cloud.typesense.org/). If you're already using Typesense Cloud, please reach out to us to have your cluster upgraded to v0.21.0.
Upgrade
- For self-hosted Typesense deployment, please replace the binary and restart the Typesense process.
- For Typesense Cloud, email us at `contacttypesense.org` and we can do an in-place upgrade for you.