【发布时间】:2018-11-29 17:40:31
【问题描述】:
我正在使用 Laravel 5 创建一个酒店预订系统,它将与第三方 API 集成以搜索世界各地的酒店。
在搜索表单中,有一个位置字段,用户可以在其中输入他们想要访问的城市,然后会根据输入的文本显示一个自动完成的下拉菜单。
我面临的问题是:来自世界各地的城市太多了。这份名单是超过一万个城市。由于此字段,网页一直在加载且无响应。
如何像 Expedia 显示的那样将所有城市放入自动完成列表中?
提前致谢。
【问题讨论】:
-
这是个好主意,但是第三方API提供者给出了每个城市的ID,ID用于搜索酒店。所以我仍然需要从 API 提供者那里输入整个列表...
-
如果只计算 10k 个城市;使用 Redis 作为缓存层和
id => name对并使用redis.io/commands/scan;维护 ElasticSearch 或 SOLR 集群似乎很容易(而且便宜),但事实并非如此。关于 ElasticSearch,你可以看到这个 youtube 视频 6.5/10 youtube.com/watch?v=waTWeJeFp4A
标签: laravel autocomplete