【问题标题】:How to Do Firebase Special Character Sensitive Search?如何进行 Firebase 特殊字符敏感搜索?
【发布时间】:2022-02-10 23:31:56
【问题描述】:

https://example.com/foods.json?orderBy="title"&startAt="Yoğurt"&endAt="Yoğurt\uf8ff"

通过上面的链接,我可以使用 startAt、endAt 查询参数在 Firebase Realtime Database Rest Api 中搜索数据。

用相似的特殊字符搜索时如何找到结果?

例如,酸奶和酸奶、kızartma 和 kizartma

我希望两种方式都得到相同的结果。

如果 Firebase 无法做到这一点,是否可以使用 Javascript 或 Dart 编程语言中的 String 方法?

【问题讨论】:

    标签: javascript firebase dart firebase-realtime-database


    【解决方案1】:

    Firebase 没有内置任何东西来执行这种类型的搜索,因此您必须自己做才能允许它。

    最简单的方法是为您要搜索的每个字符串存储一个辅助值,将每个字符映射回您要搜索的单个代表值。

    非常常见的映射是例如将所有文本映射到单个大小写(大写或小写),以便搜索变得不区分大小写。您可以对重音字符执行类似操作,将ğ 映射到g。所以通过结合这两个技巧,Yoğurt 变成了yogurt

    对于您显示的ı(和İ)也是如此,将所有four I variants in the Turkish alphabet 映射到i

    对所有特殊字符执行此操作会为您提供可用于搜索的单个字符串值(除了用户输入,您还应该存储该值)。

    有关这方面的更多信息,我建议您还阅读 Dan 的回答 here

    【讨论】:

      猜你喜欢
      • 2011-11-29
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多