[英]How to make a more flexible search query using parse.com
我有一個充滿用戶和他們的信息的數據庫,我使用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 smith”,因為contains表示只能搜索字符串的一部分,該部分必須在一起。 對此我感到抱歉。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.