如何在下面的示例中从Cloud FiRecovery查询某个日期(20210205
)和某些用户(ala
)的所有时间戳?现在,我可以下载整个文档并在设备上对其进行过滤。但它无效。
FirebaseFirestore db = FirebaseFirestore.getInstance();
db.collection("companies").document("softnet").collection("users")
.document("ala").get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
Log.d(TAG, "result: " + task.getResult().getData());
}
});
您可以筛选字段路径。documentId()如图所示,用于在查询中获取ala文档。但正如您自己所评论的那样,无法使用通配符字段进行过滤。
我能迅速想到的最好方法是存储一组日期:
dates: ["20210203", "20210205", "20210207"]
如果使用arrayUnion操作符向该数组添加值,则不会得到重复的值,然后可以使用array contains检查数组是否包含特定日期。
所以总的来说,这可能是这样的(语法错误肯定是可能的):
CollectionRefefence users = db.collection("companies").document("softnet").collection("users");
users
.whereEqualTo(FieldPath.documentId(), "ala")
.whereArrayContains("date", "20210207");
老实说,您必须考虑复杂性是否值得,因为只需读取此查询返回的单个文档并检查应用程序代码中的日期字段可能更简单。
我必须将此添加到我执行的每个搜索查询中。我有一个大约20,000个文档的索引,我真的不想重建它,因为我在上一个版本中让我的用户重建了他们的索引。注意:这是在android设备上,所以需要很长的时间和大量的电池来重新索引他们的所有文档。 谢谢你的帮助。
我有多个mongodb文档,其中有一些不同的字段,但有一个相同的字段名作为标识符。如何使用同一字段查询不同的文档?例如,以下文档都有一个“name”字段,但没有其他公共字段。 如果我想询问所有23岁的男性,我会怎么做?以下代码不返回任何内容,因为没有包含这两个字段的文档。相反,有两个单独的文档,每个文档都有一个匹配字段。
http://blog.mikemccandless.com/2012/03/new-index-statistics-in-lucene-40.html 该链接(向下一步,发现提到了长度)谈到了在索引时访问值。我希望能够在索引后这样做。该链接还谈到了将值保存为doc值,但没有给出如何这样做的示例。 如果有人能提供保存文档长度或在索引后访问文档的示例,这将非常有帮助。谢了。
在这里给ElasticSearch的初学者排名。 我有一个客户列表,他们的订单作为一个嵌套字段。假设文档结构如下: 我想查询的是:在两个日期之间订购了一定数量的用户列表。我希望能够将它与例如生日的范围查询结合起来。 我已经到了这样的地步,我可以使用聚合来获得每个订户在两个日期之间的排序总和: 但是,我想限制查询部分返回的结果,以便更好地与所有其他过滤器混合。 我的第一个想法是使用一个脚本过滤器,并
我在Elasticsearch中存储了一个日志文件,其中一个文档是文件的单行。消息块以某些关键字开始和结束。我想获取包含这些关键字的文档之间的所有文档。有没有办法利用Elasticsearch中的范围查询/范围过滤器来查询文本字段? 示例日志文件: 。。 我想查询“关键字1”和“关键字2”之间的所有文档,包括包含关键字本身的文档。假设有多个这样的块具有“关键字1”和“关键字2”。 此外,我正在用一
我正在用以下查询查询我的索引: 字段是字符串数组,查询的工作方式与预期相同。然而,有些文档没有字段,我也希望获得这些文档。 我怎么能那么做?