dragonflydb / dragonfly

A modern replacement for Redis and Memcached
https://www.dragonflydb.io/
Other
25.75k stars 949 forks source link

FT.SEARCH Query Syntax incomplete #2291

Open kurtisane opened 10 months ago

kurtisane commented 10 months ago

Describe the bug I'm running the example project of Redis OM for .Net.
https://github.com/redis/redis-om-dotnet/tree/main/examples/Redis.OM.CreateIndexStore

Using the Redis Stack everything works fine and the Program can run without any issues. docker run -p 6379:6379 -p 8001:8001 redis/redis-stack

When running Dragonfly I'm facing a issue during : var newton = await customers.Where(x => x.FullName == "Albert Einstein").FirstOrDefaultAsync();

I have debugged it a little and got down to the command that is send to the Redis/Dragonfly Server: "FT.SEARCH" "customer-idx" "(@FullName:{Albert\\ Einstein})" "LIMIT" "0" "1" // What I see in the RedisInsight Profiler or FT.SEARCH customer-idx (@FullName:{Albert\ Einstein}) LIMIT 0 1 // What I see in Code

This results in a Query Syntax error on Dragonfly. According to the docs of Redis this is not how a exact match for a query should look like: https://redis.io/docs/interact/search-and-query/query/exact-match/

But at the same time the Redis Server is capable of handling it. It seems to be the escaping of spaces in those search parameters are handled differently and the braces around the whole query. Cuz this works in Dragonfly but not on Redis : FT.SEARCH customer-idx "@FullName:{\"Albert Einstein\"}" LIMIT 0 1

Error on Redis when running this command : "Syntax error at offset 11 near FullName"

Issue on Redis OM for that: https://github.com/redis/redis-om-dotnet/issues/425

To Reproduce Steps to reproduce the behavior:

  1. Run the example project.

Expected behavior Work the same way as Redis Server

Environment (please complete the following information):

dranikpg commented 10 months ago

Hi! Thanks for reporting this issue, we'll fix it soon

The syntax is indeed a bit weird, but it is what it is... 🙂 The libraries don't work with qutoes

chakaz commented 2 months ago

Hey @dranikpg, in case this was fixed since you updated this issue, feel free to close it