This release contains new features, performance improvements and important bug fixes.
New Features
- Phrase search: wrap keywords in a query with double quotes to search them as a phrase, e.g. `"new york"`.
- Schema changes: we now support fields to be added or dropped from a collection schema in-place.
- Improved multi-field matching: much better performance and accuracy when query keywords have to be matched across
multiple fields in a document.
- Infix searching: find string within strings, which is useful for entities like model number or email address.
- Allow string fields to be sorted: sorting on string fields can be enabled by setting `sort: true` parameter of the field.
Enhancements
- Improved update and delete performance of numerical fields by 10x.
- Emplace mode for imports: using the `emplace` action creates a document if it does not exist in a collection
or updates it (partially or fully) if it already exists.
- Treat space as typo: search for `basket ball` if `basketball` is not found or vice-versa. You can disable this behavior
by setting `split_join_tokens: false`.
- Improved Cyrillic support: better highlighting and fuzzy search for fields configured with:
`el`, `ru`, `sr`, `uk` and `be` locales.
- ARM compatibility: an ARM build is now published for every release.
- Each multi-search query can have an independent `x-typesense-api-key` key. This is useful to specify different scoped search API keys for each search.
- Control the number of words that Typesense considers for typo and prefix searching via the `max_candidates` parameter.
- CORS can now be enabled for a specific set of domains using the `--cors-domains` flag.
- Search results are now highlighted by prefix, rather than the full world.
Previously, searching for "app" will highlight the full word "apple" in the results, but now it will only highlight the "app"le prefix within the word.
- "Remove Matched Tokens" can be used by itself in Overrides. So you can now setup rules like, if query contains "word", remove "word" from the search query.
- Ability to toggle if filters should by applied to overrides or not using the `filter_curated_hits` flag.
- Ability to hide `out_of` and `search_time_ms` from the search API response, using the `exclude_fields` parameter.
- Ability to control typo tolerance for facet queries using `facet_query_num_typos`.
- Ability to specify which subnet to use for peering using `--peering-subnet` server parameter.
Bug Fixes
- Fixed exact match of synonym query candidates not being ranked correctly.
- Fix glibc incompatibility on recent Linux distros (Ubuntu 21.04+). [531](https://github.com/typesense/typesense/issues/531)
- Fixed the `snippet` containing the full field value when `highlight_full_fields` is enabled.
- Fixed `--enable-cors=true` flag format not working. Earlier, only the `--enable-cors` format worked.
- Fixed exact match for repeated words (when searching for repeated words such as "Boom Boom"). [427](https://github.com/typesense/typesense/issues/427)
- Fixed `highlight_fields` parameter not respecting `include_fields`. [556](https://github.com/typesense/typesense/issues/556)
- Fixed document ids that are accepted with space char (%20) but cannot be deleted later. [574](https://github.com/typesense/typesense/issues/574)
- Improved highlighting of text containing punctuations. [528](https://github.com/typesense/typesense/issues/528)
- Fixed case sensitivity of facet fields. [504](https://github.com/typesense/typesense/issues/504)
Deprecations / behavior changes
- In prefix queries, only the prefix part of a word in the result is highlighted now, instead of the whole word.
For e.g. given a query like "new y", the result will be highlighted as `<mark>New Y</mark>ork City`.
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.23.0.
Upgrade
Before upgrading your existing Typesense cluster to v0.23.0, please review the behavior changes above to prepare your application for the upgrade.
- For self-hosted Typesense deployment, please refer to the important upgrade section of the [0.23.0 documentation](https://typesense.org/docs/0.23.0/api/#upgrading). This particular version requires a specific set of upgrade steps especially for multi-node clusters.
- For Typesense Cloud, visit your [clusters page](https://cloud.typesense.org/clusters), click on the cluster you want to upgrade, click on "Modify Configuration" on the right pane and schedule a time for your upgrade. Alternatively, you can also email `supporttypesense.org`.