我有一些地方的集合,如果我想搜索名字中包含巴黎的地方,我会这样做:
PLaces:
doc1:
title: "Paris"
category: "Pharmacy"
city: "Paris"
doc2:
title: "Paris"
category: "Pharmacy
city: "New york"
doc3:
title: "Paris"
category: "School
city: "New york"
如果我想搜索那些名字中包含巴黎的地方 我会做以下的操作
> db.collection('places')
> .orderBy('title')
> .startAt(['Paris']).endAt(['Paris'+ '\uf8ff']).getDocuements();
这将显示我所有的地方, 包含名称巴黎。
然而,我如何能够搜索其他标准的地方,如
得到只是药店与名称巴黎或药店巴黎在城市巴黎知道,有一个输入字段,允许写搜索关键字。
输入的例子 搜索 。
在云火库中是否可以这样做?如果不可以,是否有其他方法可以做到这一点?
如果你问的是是否可以接受一个单一的字符串,并且用它进行跨领域搜索,不,这是不可能的。 Firestore不是一个文本搜索引擎。
你可以跨字段查询的唯一方法是用一个 复合查询 中描述的那样。 你必须调用你想匹配的每个字段,而且每个查询只能有一个范围过滤器(所以你不能对多个字段使用startAtEndAt)。 你需要使用字段的精确值来过滤结果。
如果你想进行全文搜索,文档中推荐你使用以下方法 将您的数据镜像到实际的文本搜索引擎上.