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.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/sea...
2. https://github.com/redis/node-redis/blob/master/examples/sea...
3. Checkout `redis-om` https://github.com/redis/redis-om-node/tree/main
From what I can tell, its competitors generally don't do this, and you have to handle generating the embeddings and all the back and forth with the embeddings yourself, setting the barrier for integration much higher.
If you are at a level where you want to get a lot more control about embeddings, I agree that there it will often be better to just use the vector search capabilities that your existing solution like Redis/Postgres are getting.
That being said, many of these DBs are overcomplicated for most use cases. Redis HNSW will work for many use cases.
More to come. https://github.com/redisventures to keep up with our team