Хороший способ поиска пользователей? У меня есть идея, но я не уверен
Так что это все более теоретически, так как я планирую заранее, но у меня есть общий класс Parse User, который я пытаюсь реализовать в качестве своего рода поисковой функции, чтобы один пользователь мог искать своих друзей.
Первоначально я планировал использовать метод Parse Query для поиска всех пользователей, которые содержат символы "xxx" в своем имени. Однако... я заметил, что parse отметил, что это будет медленно с большой базой данных... в идеале я надеюсь, что приложение будет иметь тысячи пользователей. Я знаю, что это может звучать немного амбициозно, но я так думаю.
Разве parse не является подходящей платформой для этого?
Я думал о том, чтобы загрузить все пользовательские объекты и затем использовать локальный код для быстрой их фильтрации, но это, конечно, не могло быть быстрее.
Хотелось бы услышать ваши парни мысли!
1 ответ
Ваша идея может работать, но она может быть медленной. Вы можете сделать некоторые вещи, чтобы сделать это немного быстрее, но сервер всегда будет работать медленно. Если вы можете изменить на "начинается с" вместо содержимого, это будет быстрее. Точные совпадения должны быть быстрее снова.
Если вы ограничите результаты поиска, это поможет. Таким образом, по мере того, как пользователь вводит данные, не отправляйте запросы на сервер до тех пор, пока не будут набраны 3 символа, и установите ограничение для запроса в 5 результатов. В идеале также следует добавить таймер, чтобы, если пользователь вводит четвертый символ в течение 1 секунды, запрос не выполняется. Если запрос выполнен, и введен другой символ, отмените текущий запрос, прежде чем делать новый.
По мере ввода большего количества символов вы можете расширить лимит, чтобы получить больше результатов.
Определенно не загружайте все и ищите локально. Ваши пользователи также должны быть действительно доступны только для облачного кода, потому что он может использовать главный ключ (ваши пользователи должны иметь ACL, который запрещает доступ другим пользователям).