Реализация функции поиска с большими данными в реагировать родной - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть 50K + записей в моей базе данных, я хочу добавить поисковый фильтр, не влияющий на производительность приложения. Пожалуйста, предложите мне, какой подход я должен использовать для поиска больших данных.

Я вызываю API для полученияданные с сервера.И использовал реагировать нативную функциональность поиска.Но из-за больших данных я реализовал разбиение на страницы на стороне сервера, поэтому каждый раз, когда вызывается новый API и новые данные выбираются с сервера.Теперь проблема в том, что он будет искать только из выбранных записей страницы, и я хочу искать из всех записей 50K +.И я хочу найти каждый набранный символ.Поэтому я думаю, что нельзя назвать api для каждого набранного символа.

Так какой же лучший подход?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

В этой ситуации вы можете использовать избыточность.Когда вы запускаете приложение, получаете все записи (50 + K) с сервера, это займет некоторое время (вы можете получить записи на экране-заставке) в зависимости от вашего сервера и сохраните все записи в избыточном хранилище.Теперь вы можете искать данные из своего магазина притока, так что вам не нужно вызывать API при каждом поиске.

Убедитесь, что ваш сервер отправляет только те данные в ответ, которые вы должны отобразить в мобильном приложении.Таким образом, для получения записей это сократит время отклика.

Для этого вы можете использовать redux-search .

0 голосов
/ 12 февраля 2019

У меня есть приложение для поиска цитат, которое содержит 400 тыс. Кавычек на mongodb, и я использую Node JS в качестве бэкэнда.На мой взгляд, если вы собираетесь искать более 100 элементов в вашем внешнем интерфейсе, скажем, вы собираетесь использовать плоский список, вы можете создать свои поисковые алгоритмы во внешнем интерфейсе, чем вы можете динамически отображать свой список в соответствии с результатами поиска.,100 пунктов не конкретный предел, это просто моя идея.Потому что в списках больше данных, чем это выглядело бы некрасиво.

Для поиска в 50 тыс., Вы определенно должны придумать алгоритмы поиска на стороне сервера.После того, как вы получите данные для поиска, вы можете использовать

https://github.com/UnPourTous/react-native-search-list

И если ваша конкретная цель - поиск на стороне сервера, я бы порекомендовал эластичный поиск.

Но для данных 50 КБ лучше реализовать свои собственные алгоритмы.Когда вы отправляете запрос на выборку, позвольте вашему серверу запустить поиск и в ответ получить нужные вам данные.

...