如何使用文本搜索

时间:2017-08-14 21:36:21

标签: android firebase full-text-search querying

在我正在制作的Android应用程序中,我实现了一个搜索栏,以便用户可以键入某些内容,希望在数据库中找到它。我已经设置好了,结果会出现,但只有拼写完全完整。我想这样做它可以在用户输入时显示结果,即使它拼写不正确而且相似。我已经阅读了firebase库中可能的内置查询选项,但它们似乎并不支持我正在寻找的内容。有没有办法相对简单地将它添加到我的项目?我理解预测文本搜索不是简单创建的,但是我可以导入一些库吗?

2 个答案:

答案 0 :(得分:2)

您可以使用

搜索字符串
Map map = userInfo.get(0);
for(String key : map.getKeys()){
    System.out.println("Key: " + key + ", Value: " + map.get(key));
}

答案 1 :(得分:1)

建立马丁的答案,如果你想表现出来,即使他们稍微偏离我所做的就是过滤。

databaseReference.orderByChild('_searchLastName')
     .startAt(queryText)
     .limitToFirst(10) //return 10 results
     ...

我假设您可以转换为字符串列表,这将为您提供从您的查询开始的所有结果以及下一个超出您想要的结果。

从这里开始,您希望根据contains或startsWith

进行过滤
public List<String> filter(List<String> listToFilter, String query){
    List<String> results = new ArrayList();
    for( String string : listToFilter){
        if(string.startsWith(query){//or contains
            results.add(string);
        }
    }
    return results
}