docs-site/content/26.0/api/README.md
This section of the documentation details all the API Endpoints available in Typesense and all the parameters you can use with them.
Use the links on the side navigation bar to get to the appropriate section you're looking for.
To learn how to install and run Typesense, see the Guide section instead.
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.We refactored the faceting data structures to improve efficiency. This had an impact on how the total_values in
facet_stats is computed for low-cardinality facet fields: it's now computed only within the
results returned, instead of on the whole dataset. To get the correct value, use Typesense v27 and
send this additional search parameter:
"facet_strategy": "exhaustive"
This will force Typesense to compute facets in an exhaustive manner and allows the total_values to be exact.
Before upgrading your existing Typesense cluster to v{{ $page.typesenseVersion }}, 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's how to upgrade:
To upgrade a multi-node cluster, we will be proceeding node by node to ensure the cluster remains healthy during the rolling upgrade.
NOTE: During the upgrade, we have to ensure that the leader of the cluster is using the older Typesense version.
So we will upgrade the leader last. You can determine whether a node is a leader or follower by the value of the state
field in the /debug end-point response.
| State | Role |
|---|---|
| 1 | LEADER |
| 4 | FOLLOWER |
/health should return healthy).Once you upgrade to v26 of Typesense Server, you can only downgrade back to v0.25.x.
:::tip This documentation itself is open source. If you find any issues, click on the Edit page button at the bottom of the page and send us a Pull Request. :::
<RedirectOldLinks />