gpt4 book ai didi

swift - Firestore 中是否有相当于 `beginsWith` 的内容?

转载 作者:行者123 更新时间:2023-11-28 06:10:08 25 4
gpt4 key购买 nike

Firestore documentation on making queries包括示例,您可以在其中根据文档中的某些字段是否匹配、小于或大于您传入的某个值来过滤文档集合。例如:

db.collection("cities").whereField("population", isLessThan: 100000)

这将返回“人口”小于 100000 的每个“城市”。这种类型的查询也可以在 String 类型的字段上进行。

db.collection("cities").whereField("name", isGreaterThanOrEqualTo: "San Francisco")

我没有看到执行子字符串搜索的方法。例如,这是不可用的:

db.collection("cities").whereField("name", beginsWith: "San")

我想我可以使用 greaterThanlessThan 自己添加类似的内容,但我想先检查一下:

  • 为什么不存在此功能?

我担心它不存在,因为性能会很糟糕。

最佳答案

[Googler here] 你是对的,Cloud Firestore 中没有像 beginsWithcontains 这样的字符串操作,你必须近似您的查询使用大于和小于比较。

你说“它不存在,因为性能会很糟糕”,虽然我不会使用那些确切的词,但你是对的,原因是性能。

所有 Cloud Firestore 查询都必须命中索引。这就是我们如何保证任何查询的性能随着结果集的大小而扩展,即使数据集增长也是如此。我们目前没有以一种可以轻松为您想要的查询提供服务的方式为字符串数据编制索引。

全文搜索操作是最重要的 Cloud Firestore 功能请求之一,因此我们肯定会对其进行调查。

现在,如果您想进行全文搜索或类似操作,我们建议您与外部服务集成,我们提供了一些有关如何进行集成的指导: https://firebase.google.com/docs/firestore/solutions/search

关于swift - Firestore 中是否有相当于 `beginsWith` 的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46979827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com