【问题标题】:Accent-insensitive search with redisearch使用 redisearch 进行不区分重音的搜索
【发布时间】:2019-12-03 11:13:17
【问题描述】:

是否可以使用 redisearch 进行不区分重音的搜索? 我需要与 SqlServer Collat​​ions 提供的功能相同的功能。

例如索引中有一个字符串Atsargų likučiai pagal sandėlius。应该通过查询字符串likučiai以及likuciai找到。

简单而肮脏的解决方案是存储多个版本的文本 - 真实和规范化,规范化所有查询,搜索规范化版本并返回真实版本作为结果。但是对于数百万个文档,此解决方案将消耗大量内存。有没有一种干净的方法可以做到这一点?

【问题讨论】:

标签: caching search stackexchange.redis redisearch


【解决方案1】:

通过将架构定义中的PHONETIC "dm:fr" 和模糊搜索结合起来,我能够找到您的文档。

  1. 使用PHONETIC "dm:fr" option 创建新架构
FT.CREATE test_phonetic SCHEMA title TEXT PHONETIC "dm:fr"
  1. 添加文档:
FT.ADD test_phonetic doc_1 0.5 FIELDS title "Atsargų likučiai pagal sandėlius"
  1. 使用模糊搜索进行搜索:
FT.SEARCH test_phonetic "@title:%likučiai%" NOCONTENT WITHSCORES
# returns doc_1 succesfully
FT.SEARCH test_phonetic "@title:%likuciai%" NOCONTENT WITHSCORES
# returns doc_1 succesfully too

【讨论】:

    猜你喜欢
    • 2012-12-10
    • 1970-01-01
    • 2013-01-24
    • 2016-02-01
    • 2022-08-10
    • 2012-12-17
    • 2015-04-22
    • 1970-01-01
    • 2012-12-20
    相关资源
    最近更新 更多