【问题标题】:How to search in Firestore database?如何在 Firestore 数据库中搜索?
【发布时间】:2021-10-05 06:27:02
【问题描述】:

我正在使用这种方式在 firestore 数据库中搜索用户,我认为这是一种低效的方式,因为它会给出不相关的结果,例如,如果我输入“k”,它给出的结果根本不包含“k”如下图。

 var query = firestore
    .collection("users")
    .where('name', isGreaterThanOrEqualTo: customer)
    .get()
    .asStream();

有什么建议吗?!

【问题讨论】:

  • Firestore 没有您正在寻找的任何本机全文搜索功能。您必须使用像 Algolia 这样的第三方服务或存储像 ["o", "om", "oma", "omar"] 这样的数组,以便您可以使用 array-contains 运算符。哦,O is greater than K 你可以在String comparison 阅读更多相关信息

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


【解决方案1】:

当您使用以下调用时:

.where('name', isGreaterThanOrEqualTo: customer)

这意味着您正在数据库中搜索“name”属性的值大于您输入的值的文档。在这种特殊情况下,“Omar”和“Second Omar”都出现在结果集中,因为它们中的每一个都以在“k”之后按字母顺序排列的字母开头。事实上,所有大写字母都按字母顺序出现在小写字母之后。请记住,搜索是在lexicographically 执行的。

如果您正在寻找全文搜索,请注意 Firestore 不提供全文搜索。正如@Dharmaraj 在他的评论中提到的,您应该使用第三方解决方案。您还可以在以下帖子的回答中找到更多信息:

【讨论】:

    猜你喜欢
    • 2020-08-12
    • 2018-10-09
    • 1970-01-01
    • 2021-10-26
    • 2021-11-01
    • 2019-09-07
    • 2019-09-23
    • 1970-01-01
    相关资源
    最近更新 更多