3 ms·
I'm currently evaluating different vector stores and passed on Redis today after spending about a half day looking into it. Here's my reasoning 1. The Node
by killthebuddha 4y ago
I'm currently evaluating different vector stores and passed on Redis today after spending about a half day looking into it. Here's my reasoning
1. The Node.js client is designed to be just a thin wrapper around Redis commands. The client's docs basically just point you straight at the Redis docs.
2. The `@redis/search` API is slightly different than the FS.SEARCH Redis command's api. The difference is not documented and cost me ~20 minutes. This is a pretty big problem given item 1.
3. The `@redis/search` TypeScript types didn't allow some valid FS.SEARCH calls.
One thing to note is that for some use cases (IMO probably a large fraction of use cases right now), the vectors are derived data, so you don't necessarily need a super robust/battle-tested "database", you just need something with a simple happy-path API.
- leibale1998 4y ago1. node-redis or ioredis? If you are using a "modern IDE" (VS Code/WebStorm/any IDE with support for TS language server) you should get autocomplete for all the commands (in both of them). 2. The `@redis/search` package extends `@redis/client` with support for all RediSearch commands (you should get autocomplete for all RediSearch commands as well). If you want to get the "whole in one" package (support for redis vanilla + all redis modules) you can use the `redis` package instead. 3. Can you please share the command you are trying to run? BTW, these examples might help: 1. https://github.com/redis/node-redis/blob/master/examples/search-knn.js https://github.com/redis/node-redis/blob/master/examples/sea... 2. https://github.com/redis/node-redis/blob/master/examples/search-json.js https://github.com/redis/node-redis/blob/master/examples/sea... 3. Checkout `redis-om` https://github.com/redis/redis-om-node/tree/main https://github.com/redis/redis-om-node/tree/main
- qwick23 4y agoWhat do you think about Weaviate or Qdrant? There is a nice benchmarks overview with all the major players https://qdrant.tech/benchmarks/ https://qdrant.tech/benchmarks/
- killthebuddha 4y agoI haven't really looked into either. So far I've tested pinecone, Redis, chroma, elasticsearch, and pgvector. I'm not really considering performance at all, just looking for something dead-simple to deploy and use. At the moment it looks like pgvector on supabase is the winner.
- qwick23 4y agoYeah, if you don't need performance, then just take a simple ANN library. No need for a database at all. In terms of databases, Qdrant and Pinecone are the simplest I've tried so far. But Pinecone isn't open-source, not an option for on-prem. PGvector is too much imho, do not want to have all the other Sequel stuff if I just need an NN search.
- elbartus 4y agoQdrant v1.1 was released recently and its quantization feature is just fantastic . See: https://github.com/qdrant/qdrant https://github.com/qdrant/qdrant
- simplify 4y agoNot trying to say you're wrong in your decision, but in the context of the post you're replying to, aren't these points arguments against the node client rather than redis itself?