Firestore中基于正则表达式的查询文档

Jac*_*ack 5 firebase flutter google-cloud-firestore

我想使用正则表达式查询 Firestore 中的文档。这是因为为了将搜索功能添加到我的 Flutter 应用程序中,我需要能够基于搜索创建查询。例如,如果用户输入:“alice”——我将有一个看起来像这样的正则表达式,(?i)alice并且我将在 firestore 中查询名称字段满足此正则表达式的任何文档,无论是 Alice、Alice Doe 还是 Doe Alice。我正在寻找一个如下所示的查询:

Firestore.instance.collection('people')
  .where('name', matchesRegex: '(?i)alice')
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。我觉得这是一个非常基本的功能,但我在文档中找不到它。我真的无法获取所有文档并据此进行搜索,因为集合非常大,而且我不想阅读那么多文档。

Dou*_*son 3

Firestore 不在查询中提供任何正则表达式。这些类型的查询无法按照 Firestore 所需的方式进行扩展。它仅支持精确的字符串匹配以及带字符串前缀的范围查询。

如果您需要更灵活的基于文本的查询,请考虑将数据镜像到文本搜索引擎,例如 Algola,如文档中所述