Query firebaseSearchQuery =
myRef.orderByChild("from").startAt(searchText).endAt(searchText+"\uf8ff");
Query firebaseSearchQuery =
myRef.orderByChild("from").contains(searchText);
对于小型数据集,可以使用以下代码:
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<String> list = new ArrayList<>();
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String from = ds.child("from").getValue(String.class);
list.add(from);
}
for(String str : list) {
if(str.contains(searchText)) {
Log.d("TAG", "String found!");
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
myRef.addListenerForSingleValueEvent(valueEventListener);
对于大型数据集,不建议使用此解决方案,因为您需要下载整个节点才能进行搜索。在这种情况下,推荐使用Algolia或Elasticsearch。
如果你打算使用Cloud Firestore,我推荐你从这篇帖子中看到我的答案。想要了解更多信息,我也推荐你看这个视频。
表的结构是: null 以下是我目前掌握的信息:
我对Sumologic中的搜索查询有点迷茫。我需要获取包含
我想从firebase搜索,其中的名字包含的字符从搜索框在任何位置的名字?有谁能像这样帮帮我吗
问题内容: 我必须找到具有字符串的匹配文档,例如:在某些“键”范围内的字符串:“ sky”。当我编写单独的匹配和范围查询时,我从ES获得输出,但是合并在一起时会抛出异常。 范围查询: 匹配查询: 组合查询: 组合查询在执行时会引发错误: 引发HTTP_EXCEPTIONS.get(状态代码,TransportError)(状态代码,error_message,Additional_info)ela
问题内容: 该表的结构为: chats –> randomId –>–> participants –>–>–> 0: ‘name1’ –>–>–> 1: ‘name2’ –>–> chatItems 等等 我想做的是查询聊天表,以通过传入的用户名字符串查找所有持有参与者的聊天。 这是我到目前为止的内容: 问题答案: 您当前的数据结构非常适合查找特定聊天的参与者。但是,这不是一个很好的反向搜索结构
问题内容: 我有一个带有3个索引的elasticsearch集群: 因此,现在我需要运行处理多个索引的查询。 例如: 获取在页面X中注册的用户的性别。 ( 要获取此信息,我需要来自多个索引的信息。 ) 这可能吗?也许整合Hadoop? 问题答案: 在Elasticsearch本身中,这非常容易!任何时候您指定索引时,都可以用逗号分隔其他索引。 您也可以使用_all搜索所有索引。 这是来自Elast