RediSearch中的@符号如何?

How to the @ symbol in RediSearch?

我正在使用模块 RedisJSON 和 RediSearch 一起对 JSON 数据执行搜索查询。 给定一个像这样的 json 列表:

{"email": "test1@example.com", "is_checked": 1}

我愿意:

FT.CREATE myidx ON JSON SCHEMA $.email AS email TAG
FT.SEARCH myidx "@email:'test1@example.com'"

但是我得到了Syntax error

我如何 select 使用值“test1@example.com”?

您可以使用反斜杠转义特殊字符,例如@:

FT.SEARCH myidx "@email:'test1\@example.com'"

这应该可以解决问题。

我只是 运行 解决了这个问题,接受的答案对我不起作用,但我在 this RediSearch issue 中找到了解决方案。

有了一个索引,其中有一个存储为 TAG 的电子邮件字段,您可以像这样进行搜索:

FT.SEARCH myidx "@email:{ test1\@example\.com }"

转义 @. 个字符。

这里还有查询 TAG 字段的文档:https://redis.io/docs/stack/search/reference/tags/#querying-tag-fields