У меня есть приложение, в котором у меня есть пользователи с именем пользователя и местом для их настоящего имени. Я также разрешаю пользователям запрашивать других пользователей. В настоящее время мой запрос выглядит следующим образом:Поиск в Parse.com без регулярного выражения
PFQuery *userQuery = [PFUser query];
[userQuery whereKey:kCPUserName containsString:[searchText lowercaseString]];
PFQuery *userRealNameQuery = [PFUser query];
[usernameQuery whereKey:kCPUserFullName containsString: searchText];
PFQuery *userRealNameWithCapsQuery = [PFUser query];
[userRealNameWithCapsQuery whereKey:kCPUserFullName containsString:[searchText capitalizedString]];
PFQuery *userRealNameWithLowerQuery = [PFUser query];
[userRealNameWithLowerQuery whereKey:kCPUserFullName containsString:[searchText lowercaseString]];
PFQuery *finalQuery = [PFQuery orQueryWithSubqueries:@[userQuery, userRealNameQuery, userRealNameWithCapsQuery, userRealNameWithLowerQuery]];
Это прекрасно работает, возвращая список пользователей, которые могут соответствовать SearchText. Тем не менее, мне стало известно, что containsString использует regex, поэтому, если у меня есть много пользователей, которые ищут одновременно, я быстро запускаю 80 запросов регулярных выражений/мин в синтаксическом анализе. Использование hasPrefix: также использует regex. Единственный вопрос, о котором я могу думать, это использовать метод equalTo:, но это будет означать, что пользователь должен точно знать, кого он ищет, и как записать свои имена (как пользовательские, так и реальные).
Любые предложения?
вот почему я отошел от Парса - я закончил тем, что тратил много времени на кодирование вокруг пределов Парса. – CharlesA