Open Source alternative to Algolia + Pinecone and an Easier-to-Use alternative to ElasticSearch ⚡ 🔍 ✨ Fast, typo tolerant, in-memory fuzzy Search Engine for building delightful search experiences
This release contains important new features, performance improvements and bug fixes.
Starting with this release, we're dropping the 0.x.y
versioning scheming and switching to a x.y
versioning scheme.
So we're going from 0.25 --> 26.0
.
Typesense has been production-ready for a few years now, and is actively used at scale in production, serving billions of search requests per month just on Typesense Cloud, and several billions more in self-hosted clusters.
We originally intended the 0.x
versioning scheme to communicate that there might be backward in-compatible changes between versions. In reality though, we've only had to do two backward incompatible changes over the years. However, the usage of the previous 0.x
versioning scheme seemed to mis-communicate Typesense's production-readiness among new users, causing confusion.
Switching from 0.x
to 1.x
also seemed to mis-communicate the progress and feature-set maturity we've built over the years.
So we decided to simply drop the 0.
and switch to whole numbers for major versions, to convey Typesense's progress over the last 8 years.
vector_query
parameter in Vector Search supports a qs
parameter (stands for plural of the q
parameter) that accepts a
comma-separated list of historical search queries. We compute the average embedding of these queries and use that as the vector for search.
_eval
in sort_by
and assign scores to records that match particular filters, to boost or bury a set of records together.
the filter expression.
walking
, will also return results with walk
, walked
, walks
, etc when stemming is enabled.stem: true
property under the fields
parameter.company_name: Acm*
will return names that begin with acm
.filter_by
and only q
supported prefix matches.a
, am
, the
, are
, etc.) that should be excluded from the indexing and search process to improve search relevance and performance.
"facet_by": "phone(sort_by: _alpha:asc)"
or on the value of another field
via "facet_by": "recipe.name(sort_by: recipe.calories:asc)"
color.name
you can now set
"facet_return_parent": "color.name"
. This will return the parent color object as parent property in the facet response."filter_by": "artist:! Jackson"
will exclude all documents whose artist
field value contains the word jackson
.id
field now support the :!=
operation, so "filter_by": "id:!=[id1, id2]"
will exclude documents that have an id
value of id1
or id2
.M
, efConstruction
and efSearch
have been made configurable.enable_typos_for_numerical_tokens: false
parameter to disable typos on numerical.limit
and offset
GET parameters.metadata
object field,
which is persisted along with collection schema. This is useful for record keeping.metadata
object within an override, so that the search end-point response
will return the pre-defined metadata associated for that rule. This can can be used to display a message on the front-end.range_index: true
in a field's schema for fast range queries
(this will incur additional memory overhead though).store: false
field property.text_match_info
response.index: false
+ optional: false
. Previously this was not allowed./metrics.json
API./health
API returns additional information about memory/disk exhaustion."q": "*"
in rules.expand_query
parameter for suggestion aggregation.autodelete: true
property is set during key creation.--cache-num-entries
server flag. Default is 1000
.typo_tokens_threshold
not considering the number of grouped hits._eval
condition in sort_by
contained a comma.object
type auto-creating schema for nested fields even for non-indexed fields.There are no depreciation or behavior changes in this version.
Before upgrading your existing Typesense cluster to v26.0, please review the behavior changes above to prepare your application for the upgrade.
We'd recommend testing on your development / staging environments before upgrading.
If you're on Typesense Cloud:
If you're self-hosting Typesense, here are instructions on how to upgrade: https://typesense.org/docs/26.0/api/#self-hosted
Once you upgrade to v26
of Typesense Server, you can only downgrade back to v0.25.x
.
View the complete API documentation for this release here: https://typesense.org/docs/26.0/api/
This release fixes some important bugs identified in v0.25.1
and also adds several enhancements to existing features. So we highly recommend upgrading to it.
prioritize_num_matching_fields
that allows you to configure whether the text match score should consider number of matching fields as a ranking criteria. This defaults to true
.alpha
) to be configurable in vector_query
.drop_tokens_mode
search parameter.remote_embedding_timeout_ms
and remote_embedding_num_tries
for indexing.compact_store
parameter.db-compaction-interval
. Default: 604800
(seconds).group_by
, you can now control if documents with a null
value in the grouped field should be placed in one group together, or should not be grouped using the group_missing_values
parameter.hidden_hits
search parameter.Before upgrading your existing Typesense cluster to v0.25.2
, please review the behavior changes above to prepare your application for the upgrade.
0.25.2
and schedule a time for your upgrade.Once you upgrade to v0.25.x
of Typesense Server the internal structure of the data directory becomes incompatible with older versions of Typesense (v0.24
).
However, if you need to downgrade to v0.24
, we've released a special version v0.24.2
that backports these data structure changes back to v0.24
while keeping other v0.24.1
features as is.
So v0.25.x
can only be downgraded to v0.24.2
.
But v0.25.2
can be downgraded to v0.25.1
and v0.25.0
if needed.
View the complete API documentation for this release here: https://typesense.org/docs/0.25.2/api/
This release fixes some important bugs identified in the recently released v0.25.0
. So we highly recommend upgrading to it.
Before upgrading your existing Typesense cluster to v0.25.1
, please review the behavior changes above to prepare your application for the upgrade.
0.25.1
and schedule a time for your upgrade.Once you upgrade to v0.25
of Typesense Server the internal structure of the data directory becomes incompatible with older versions of Typesense (v0.24
).
However, if you need to downgrade to v0.24
, we've released a special version v0.24.2
that backports these data structure changes back to v0.24
while keeping other v0.24.1
features as is.
So v0.25
can only be downgraded to v0.24.2
.
But v0.25.1
can be downgraded to v0.25.0
.
View the complete API documentation for this release here: https://typesense.org/docs/0.25.1/api/
This release contains exciting new features and important bug fixes.
filter_by
condition
offset
and limit
: This is in addition to the existing page
and per_page
mechanism. This new pagination method offers more flexibility and is also useful for GraphQL compatibility.
facet_by
, query_by
, include_fields
, exclude_fields
,
highlight_fields
and highlight_full_fields
when a wildcard expression is used, e.g. title_*
will match title_en
.sort_by: _group_count:desc
.group_limit
.!=
filtering operation can now be performed against numerical fields. Previously only string fields were supported for this operator.preset
parameter in embedded API key.--reset-peers-on-error
) that makes the cluster forcefully refresh its peers when an
unrecoverable clustering error happens due to sudden change of peer IPs. There's also an equivalent
/operations/reset_peers
API. Be careful while using this option, as it can lead to transient loss of data.There are no depreciation or behavior changes in this version.
Before upgrading your existing Typesense cluster to v0.25.0
, please review the behavior changes above to prepare your application for the upgrade.
0.25.0
and schedule a time for your upgrade.Once you upgrade to v0.25
of Typesense Server the internal structure of the data directory becomes incompatible with older versions of Typesense.
However, if you need to downgrade to v0.24
, we've released a special version v0.24.2
that backports these data structure changes back to 0.24
while keeping other 0.24.1
features as is.
So v0.25
can only be downgraded to v0.24.2
.
View the complete API documentation for this release here: https://typesense.org/docs/0.25.0/api/
This release fixes some important bugs identified in the recently released v0.24.0
. So we recommend updating to it.
NaN
values for geo filter query.id
from being a default sorting field.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. If you're already using Typesense Cloud, please reach out to us to have your cluster upgraded to v0.24.1
.
Before upgrading your existing Typesense cluster to v0.24.1
, please review the changes above to prepare your application for the upgrade.
[email protected]
and we can do an in-place upgrade for you.This release contains new features, performance improvements and important bug fixes.
enable_nested_fields
option during collection creation.is_premium: true || (price:> 100 && category: shoes)
is now possible.locale
flag in the collection schema.sort_by
clause can now accept an expression whose result is used for sorting, e.g.
sort_by=_eval(brand:nike):desc,_text_match:desc
.text_match_type
parameter that allows you to customize how multi-field text relevancy score is computed.highlight
in the JSON response.stop_processing
flag (default is true
).locale
and symbols_to_index
options during synonym creation.replace_query
option.effective_from_ts
and effective_to_ts
options.filter_by
rule in overrides.--skip-writes
flag for starting Typesense in a mode that does not read writes from the Raft log. This is
useful when the server has crashed due to some recent bad writes that you want to skip over temporarily.--memory-used-max-percentage
and --disk-used-max-percentage
flags for preventing writes when a specified
memory/disk threshold is breached.id
s to be returned in the import response via
the return_doc
and return_id
options.POST /operations/db/compact
end-point.logrotate
.search_cutoff_ms
is now 30000
, i.e. 30 seconds. If you wish to allow searches to run
longer than that, you can pass a higher value as a search parameter.highlights
key in the response is deprecated (but is still returned for now). Use the new highlight
object in the response for highlighting information.text_match
key in the response is deprecated (but is still returned for now) in favor of the
new text_match_info
object that returns fine grain matching information, including the score.Before upgrading your existing Typesense cluster to v0.24.0
, please review the behavior changes above to prepare your application for the upgrade.
[email protected]
.This release contains a few enhancements and bug fixes identified in v0.23.0 which we thought are important enough to warrant a patch release. If you're using v0.23.0, we recommend upgrading.
id
field.prefix
setting.sort_by
parameter in override rule.prioritize_token_position
search parameter.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. If you're already using Typesense Cloud, please reach out to us to have your cluster upgraded to v0.23.1.
Before upgrading your existing Typesense cluster to v0.23.1, please review the changes above to prepare your application for the upgrade.
[email protected]
and we can do an in-place upgrade for you.This release contains new features, performance improvements and important bug fixes.
"new york"
.sort: true
parameter of the field.emplace
action creates a document if it does not exist in a collection
or updates it (partially or fully) if it already exists.basket ball
if basketball
is not found or vice-versa. You can disable this behavior
by setting split_join_tokens: false
.el
, ru
, sr
, uk
and be
locales.x-typesense-api-key
key. This is useful to specify different scoped search API keys for each search.max_candidates
parameter.--cors-domains
flag.filter_curated_hits
flag.out_of
and search_time_ms
from the search API response, using the exclude_fields
parameter.facet_query_num_typos
.--peering-subnet
server parameter.snippet
containing the full field value when highlight_full_fields
is enabled.--enable-cors=true
flag format not working. Earlier, only the --enable-cors
format worked.highlight_fields
parameter not respecting include_fields
. #556
<mark>New Y</mark>ork City
.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. If you're already using Typesense Cloud, please reach out to us to have your cluster upgraded to v0.23.0.
Before upgrading your existing Typesense cluster to v0.23.0, please review the behavior changes above to prepare your application for the upgrade.
[email protected]
.This release contains a couple of bug fixes identified in v0.22.1
which we thought are important enough to warrant a patch release. If you're using v0.22.1
, we recommend upgrading.
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. If you're already using Typesense Cloud, please reach out to us to have your cluster upgraded to v0.22.2.
Before upgrading your existing Typesense cluster to v0.22, please review the behavior changes above to prepare your application for the upgrade.
[email protected]
and we can do an in-place upgrade for you.This release contains a couple of bug fixes identified in v0.22.0
which we thought are important enough to warrant a patch release. If you're using v0.22.0
, we recommend upgrading.
filter_by
condition: documents were being duplicated..*
) field is present in the collection schema.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. If you're already using Typesense Cloud, please reach out to us to have your cluster upgraded to v0.22.1.
Before upgrading your existing Typesense cluster to v0.22, please review the behavior changes above to prepare your application for the upgrade.
[email protected]
and we can do an in-place upgrade for you.