Size: a a a

Flutter Developers — русскоговорящее сообщество

2021 February 25

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Или что?
источник

DK

D K in Flutter Developers — русскоговорящее сообщество
сам алгоритм но без база данных
источник

DK

D K in Flutter Developers — русскоговорящее сообщество
можно и с база данных
источник

V

Victor in Flutter Developers — русскоговорящее сообщество
https://ru.wikipedia.org/wiki/Префиксное_дерево вот в такую штуку загоняешь все рестораны
источник

V

Victor in Flutter Developers — русскоговорящее сообщество
ну и по префиксу дергаешь потом
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Типа того.

Map<String, Map<String, Restourant>>{}
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Вот такая структура должна быть
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Где первый String это первые 3 буквы
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
А второй String либо первые 5 букв, либо полное соответсвие
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Но можно и значительно проще

Map<String, Set<Restourant>>
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Также, String - первые три буквы
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
В бд это выглядит аналогично, таблица с полем первые три буквы и полем полного нименования. По обоим полям строится индекс.
Делается запрос с подзапросом.
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Key-Value базы данных по аналогии.
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
источник

V

Victor in Flutter Developers — русскоговорящее сообщество
можно наверно еще оптимизировать чтоб отдавался не список а генератор по ключу с 3х букв на случай если много ресторанов начинается на эти 3 буквы, но тут не уверен
источник

V

Victor in Flutter Developers — русскоговорящее сообщество
я как-то пытался сделать похожее и не вышло
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Victor
можно наверно еще оптимизировать чтоб отдавался не список а генератор по ключу с 3х букв на случай если много ресторанов начинается на эти 3 буквы, но тут не уверен
Тут можно смасштабировать и сделать еще слой, уже на 4 или 5 букв, но уверяю тебя, оно тебе не нужно)
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Я делал на таблицей с сотней миллиардов записей, весом 350 гигов
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Искало меньше чем за миллисекунду точно
источник

V

Victor in Flutter Developers — русскоговорящее сообщество
🅵🅾️🆇
Тут можно смасштабировать и сделать еще слой, уже на 4 или 5 букв, но уверяю тебя, оно тебе не нужно)
вдруг там поиск по всем ресторанам мира)
источник