我在应用中使用Firestore数据库。
现在,是否可以在多个字段中搜索特定单词?
例如:想象一个像“ cheesecake” 的单词。现在,我收集了100个文档,每个文档有10个不同的字段。
我可以在所有字段 中过滤单词,以便它返回中包含单词“ cheesecake” 的任何文档。任何字段,都在Flutter中?
答案 0 :(得分:0)
否,您不能这样做。
查看Firebase Firestore Documentation page about queries,您将发现以下内容:
Cloud Firestore不支持以下类型的查询:
这并不直接适用于您的特定用例,但是为什么您的请求将不起作用的原因是相似的:没有索引可让您根据多个不同的字段进行排序。
您可以例如创建对每个字段进行排序的索引,但只能单独查询它们。要了解为什么不支持某些查询,您可以check out this in depth explanatory video from the Firebase team。
最后,这意味着您需要进行客户端过滤。
postcss
答案 1 :(得分:0)
正如creativecreatoror可能没有解释的那样,没有简单的解决方案可以满足您的要求。根据数据库的大小,在客户端进行过滤可能会非常耗时和金钱。
还有另一种可能性,那就是使用Algolia托管的搜索服务对Cloud Firestore文档启用全文搜索。有一个官方的Cloud Function示例显示了如何进行设置:https://github.com/firebase/functions-samples/tree/Node-8/fulltext-search-firestore