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

时间:2015-11-01 15:41:52

标签: 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”,它将正确地返回“JohnSánchezSmith”作为搜索结果。但是,如果我搜索“john smith”,它将找不到他,因为该列不完全按照该顺序包含它。有谁知道这个的解决方法?

感谢您的时间

1 个答案:

答案 0 :(得分:0)

无法搜索&#34; john smith&#34;,因为包含意味着只能搜索一个字符串的一部分,这必须在一起。对不起,我很抱歉。