Flutter:从Firestore搜索文本数据

问题描述 投票:0回答:2

我想在我的Flutter应用程序中实现搜索功能。文本数据存储在Firestore中。

现在我正在考虑一个不切实际的解决方案:下载整个集合(这是一个纯文本),然后用Dart代码以某种方式搜索它。

有没有更好的方法在Flutter / Firestore进行搜索?我可以使用云功能来做到这一点吗?如果没有更好的方法,如何在Flutter中使用Dart搜索内容?

search text dart google-cloud-firestore flutter
2个回答
4
投票

Cloud Firestore上目前唯一可用的文本搜索类型是所谓的前缀搜索。这允许以某些值开头的发现字符串,如Dark*,或以某个范围开头的字符串,如A* to B

目前无法搜索包含特定字符串或更复杂操作的值。

无论您如何访问它,这都适用于Firestore。因此它适用于Web功能,iOS,Android,Flutter,REST以及云功能所依赖的管理SDK。

将全文搜索添加到基于Cloud Firestore构建的应用程序的常用方法是集成第三方文本搜索引擎,如Algolia或ElasticSearch。有关更多信息,请参阅Firebase documentation


0
投票

虽然为时已晚......我也遇到了问题并使用isGreaterThanOrEqualTo和isLessThan条件的多个where子句解决了它。基本上,它搜索以键入的搜索词开头的文档,直到搜索词附加“z”字符。搜索以'foo'开头的字段值的示例将搜索'foo'和'fooz'之间的字符串。

currentStream = Firestore.instance
      .collection('collectionName')
      .where('searchKey', isGreaterThanOrEqualTo: type)
      .where('searchKey', isLessThan: type + 'z')
      .snapshots();
© www.soinside.com 2019 - 2024. All rights reserved.