1. Create Index
- TypeScript
- Redis CLI
Copy
Ask AI
import { Redis, s } from "@upstash/redis";
const redis = Redis.fromEnv();
const index = await redis.search.createIndex({
name: "products",
dataType: "json",
prefix: "product:",
schema: s.object({
name: s.string(),
description: s.string(),
category: s.string().noTokenize(),
price: s.number(),
inStock: s.boolean(),
}),
});
Copy
Ask AI
SEARCH.CREATE products ON JSON PREFIX 1 product: SCHEMA name TEXT description TEXT category TEXT NOTOKENIZE price F64 FAST inStock BOOL
2. Add Data
Add data using standard Redis JSON commands. Any key matching the index prefix will be automatically indexed.- TypeScript
- Redis CLI
Copy
Ask AI
await redis.json.set("product:1", "$", {
name: "Wireless Headphones",
description:
"Premium noise-cancelling wireless headphones with 30-hour battery life",
category: "electronics",
price: 199.99,
inStock: true,
});
await redis.json.set("product:2", "$", {
name: "Running Shoes",
description: "Lightweight running shoes with advanced cushioning technology",
category: "sports",
price: 129.99,
inStock: true,
});
Copy
Ask AI
JSON.SET product:1 $ '{"name": "Wireless Headphones", "description": "Premium noise-cancelling wireless headphones with 30-hour battery life", "category": "electronics", "price": 199.99, "inStock": true}'
JSON.SET product:2 $ '{"name": "Running Shoes", "description": "Lightweight running shoes with advanced cushioning technology", "category": "sports", "price": 129.99, "inStock": true}'
SEARCH.WAITINDEXING products
3. Search Data
- TypeScript
- Redis CLI
Copy
Ask AI
const results = await index.query({
filter: { description: "wireless" },
});
const count = await index.count({
filter: { price: { $lt: 150 } },
});
Copy
Ask AI
SEARCH.QUERY products '{"description": "wireless"}'
SEARCH.COUNT products '{"price": {"$lt": 150}}'