【问题标题】:how to do full text search in flutter firebase如何在flutter firebase中进行全文搜索
【发布时间】:2021-05-17 17:41:50
【问题描述】:

如何在没有像 algolia 这样的第三方应用的情况下在 Flutter Firebase 上应用全文搜索

 stream: FirebaseFirestore.instance
                .collection('cars')
                .orderBy('time', descending: true)
                .where('name', isEqualTo: test)
                .snapshots(),

这就是我尝试搜索的方式,但它无法正常工作,因为我需要输入我尝试使用 algolia 的文档的全名,但 google 功能要求升级我的飞机,现在它不是一个选项

【问题讨论】:

  • 需要使用第三方工具;出于扩展和效率的原因,Firestore 没有此类工具。但是几个月来我一直在使用 Blaze 计划,包括多个云功能、Firebase 存储、Firebase Firestore 等 - 到目前为止,我最大的账单是 0.01 美元(是的,你没看错)。当心失控和/或无限循环,不要尝试存储数百 GB 等,您可能会没事的。
  • 最好的第三方工具是什么?
  • 抱歉,这是一个意见问题 - 它取决于您的需求和您的数据。

标签: firebase flutter dart search google-cloud-firestore


【解决方案1】:

来自this answer ( 请注意,这不会表现为全文搜索,而更像是“开始于”搜索):

stream: FirebaseFirestore.instance
    .collection('cars')
    .orderBy('name', descending: true)
    .startAt(test)
    .endAt(test+'\uf8ff')
    .snapshots(),

关于'\uf8ff'

查询中使用的字符 \uf8ff 是 Unicode 范围内的一个非常高的代码点(它是私有使用区 [PUA] 代码)。因为它在 Unicode 中的大多数常规字符之后,所以查询匹配所有以 searchName 开头的值

【讨论】:

    【解决方案2】:

    如果您决定使用本地数据库,您可以使用 sqlite 顶部的 moor 库进行全文搜索,并启用 fts5 扩展:https://moor.simonbinder.eu/docs/using-sql/extensions/#fts5

    【讨论】:

      猜你喜欢
      • 2011-11-04
      • 1970-01-01
      • 2022-08-18
      • 1970-01-01
      • 2014-06-05
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 2021-01-16
      相关资源
      最近更新 更多