2015-11-01 73 views
0

我已經擁有了一個充滿用戶及其信息的數據庫,我使用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 sanchez smith」,它會正確返回「JohnSánchezSmith」作爲搜索結果。但是,如果我搜索「約翰史密斯」,它不會找到他,因爲該列沒有按照該順序包含它。有誰知道這個解決方法嗎?

感謝您的時間

+0

您可以分割您的字符串並單獨保存單獨的單詞[如parse的博客中所述](http://blog.parse.com/learn/engineering/implementing-scalable-search-on-a-nosql-backend /) –

回答

0

這是不可能的搜索「約翰·史密斯」,因爲包含了只有1字符串的一部分可以被搜索的手段,它具有待在一起。我很抱歉。