java - 如何使用 parse.com 进行更灵活的搜索查询

标签 java android parse-platform

我有一个充满用户及其信息的数据库,我使用 parse.com 来搜索它们。

现在,为了使搜索更好一点,并使其灵活地使用大写、重音符号等,我有一个名为 search_helper 的列,当用户注册或更新他的信息时,该列会被填充,如下所示:

            String fullNameNormalized = Normalizer.normalize(inputFirstName.getText() + " " + inputFirstSurname.getText() + " " + inputSecondSurname.getText(), Normalizer.Form.NFD);
            fullNameNormalized = fullNameNormalized.replaceAll("[^\\p{ASCII}]", "");
            fullNameNormalized = fullNameNormalized.toLowerCase();



            String searchHelper = fullNameNormalized + " " + email + " " + phone;

所以它基本上是一个较长的字符串,包含所有小写的用户信息,所以当我进行查询时,它看起来像这样:

            String searchParams = searchText.getText().toString().toLowerCase().trim();
            ParseQuery<ParseUser> newSearch = ParseUser.getQuery();
            newSearch.whereContains("search_helper", searchParams);

这在很大程度上是有效的。例如,如果我尝试搜索“john sanchez smith”,它将正确返回“John Sánchez Smith”作为搜索结果。但是,如果我搜索“john smith”,它不会找到他,因为该列不完全按照该顺序包含它。有谁知道这个问题的解决方法?

感谢您的宝贵时间

最佳答案

无法搜索“john smith”,因为 contains 意味着只能搜索字符串的 1 个部分,而且这些部分必须在一起。对此我深感抱歉。

关于java - 如何使用 parse.com 进行更灵活的搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33463981/

相关文章:

java - 匹配竖线分隔文件的正则表达式

java - 单一异常

android - 在没有 Android SDK 管理器的情况下下载 Android SDK 组件

javascript - 无法在输入框中显示可变内容

java - 如何在 Eclipse 中使用 Weblogic?

java - 是否有理由使用字符串 => 索引到 vector 的映射,而不是字符串 => 对象?

java - 如何使用 dbus-java 注册 dbus 对象?

java - 获取直播电视视频流(像素)

xcode - Swift + Parse : 'Can' t use nil for keys or values on PFObject. 使用 NSNull 作为值。

ios - 如何防止 Swift Parse iOS 上的重复条目?