Skip to main content
Upstash Redis Search uses SEARCH.* commands. They are separate from and incompatible with the FT.* commands in the open-source RediSearch module.
For Search commands, use the Upstash @upstash/redis or upstash-redis SDK, or the redis-js wrappers @upstash/search-redis for node-redis and @upstash/search-ioredis for ioredis. For feature guides and tutorials, start with the Upstash Redis Search introduction.

SEARCH.CREATE

Create a search index

SEARCH.REINDEX

Rebuild a search index from the current data

SEARCH.DROP

Remove a search index

SEARCH.DESCRIBE

Return metadata about a search index

SEARCH.WAITINDEXING

Wait until pending index updates are visible

SEARCH.LISTINDEXES

List search indexes in the database

SEARCH.QUERY

Search documents with a JSON filter

SEARCH.COUNT

Count matching documents

SEARCH.AGGREGATE

Compute analytics over matching documents

SEARCH.ALIASADD

Add or update an index alias

SEARCH.ALIASDEL

Remove an index alias

SEARCH.LISTALIASES

List index aliases
SEARCH.QUERY, SEARCH.COUNT, SEARCH.AGGREGATE, SEARCH.DESCRIBE, SEARCH.WAITINDEXING, and SEARCH.REINDEX accept either an index name or alias. SEARCH.DROP always treats its argument as a literal index name. This makes it possible to switch an alias to a replacement index and then drop the old index without dropping the replacement.

REST API Usage

All search commands can be sent via the Upstash REST API using a JSON array POST body. Each element of the array corresponds to a token in the command.
The JSON filter and aggregation arguments are passed as string values within the array (not as nested JSON objects):
Pass JSON filter and aggregation arguments as string values inside the array, not as nested JSON objects. Search commands also work through the /pipeline endpoint for batching multiple commands in a single HTTP request.