【问题标题】:How to do a redisearch search for items that have @field with a - in it?如何重新搜索包含 @field 和 - 的项目?
【发布时间】:2019-09-02 22:17:29
【问题描述】:

我有一个重新搜索索引,其中的字段包含特殊字符,如“-”。我一直在尝试搜索类别字段为“Multiroom-høttaler”的产品。

这是直接来自 redis-cli 的示例条目:

 1) shortDescription
 2) "\"Urbanears Stammen multiroom-h\xc3\xb8yttaler leverer stor, velbalansert lyd i et design som harmonerer med interi\xc3\xb8ret til ethvert hjem.\""
 3) brand
 4) "\"Urbanears\""
 5) title
 6) "\"Urbanears Stammen multiroom-h\xc3\xb8yttaler (bl\xc3\xa5)\""
 7) articleNumber
 8) "\"STAMMENBU\""
 9) category
10) "\"Multiroom-h\xc3\xb8yttaler\""

我尝试了以下方法,包括从 cli 和 rdm 对所有这些都运行 ft.explain,但没有成功。我也希望它是完全匹配的。

到目前为止,它们都返回 0 次点击。

ft.search no @category:Multiroom-høyttaler
ft.search no @category:Multiroom\-høyttaler
ft.search no @category:Multiroom\\-høyttaler
ft.search no @category:\"Multiroom-høyttaler\"
ft.search no @category:\"Multiroom\\-høyttaler\"
ft.search no @category:\\"Multiroom\-høyttaler\\""
ft.search no @category:"\\"Multiroom\\-høyttaler\\""

我希望获得 Multiroom-høyttaler 类别的所有产品。

【问题讨论】:

  • 您的问题是您还需要index 转义- 的字段。
  • 此外,我可能会建议将诸如“类别”之类的字段设为TAG 字段,因为我认为可供选择的选项很少。
  • @MarkNunberg 谢谢,我将对此进行测试。有点不确定如何使用 TAG,但会阅读它。
  • @MarkNunberg 使用转义重新建立索引有效。谢谢,给个答案,我会接受的。

标签: redisearch


【解决方案1】:

您的问题是您还需要使用 - 转义的字段进行索引。

【讨论】:

  • 您能否详细说明这是如何完成的?
  • @SamiFouad 插入时需要将所有- 替换为\-
猜你喜欢
  • 2021-01-21
  • 1970-01-01
  • 1970-01-01
  • 2011-05-26
  • 2011-09-10
  • 1970-01-01
  • 2017-04-15
  • 1970-01-01
  • 2014-09-24
相关资源
最近更新 更多