我的数据库中有50K +条记录,我想添加搜索过滤器而不影响应用程序的性能。请建议我应该采用什么方法来搜索大数据。
我正在调用api从服务器获取数据。并用于反应本机搜索功能。但是由于大数据,我已经在服务器端实现了分页,因此每次调用新的api并从服务器获取新的数据。现在的问题是它将仅从提取的页面记录中搜索,而我想从所有50K +记录中搜索。我想搜索键入的每个字符。因此,我认为在键入的每个字符上调用api是不可行的。
那么最好的方法是什么?
答案 0 :(得分:1)
我有一个报价查找器应用程序,该应用程序在mongodb上拥有40万个报价,并且我使用Node JS作为后端。以我的观点,如果您要在前端搜索100多个项目,可以说您要使用平面列表,则可以在前端创建搜索算法,而不是根据搜索结果动态呈现列表。 。 100件物品没有具体限制,这只是我的想法。因为in列表中的数据多,看起来很难看。
对于5万次搜索,您肯定必须在服务器端提出搜索算法。获取搜索数据后,您可以使用
如果您的特定目标是在服务器端进行搜索,则建议使用弹性搜索。
但是对于50k数据,最好实现自己的算法。当您发送获取请求时,让您的服务器运行搜索并作为响应来获取您想要的数据。
答案 1 :(得分:1)
您可以在这种情况下使用redux。当您启动应用程序时,从服务器获取所有记录(50 + K)会花费一些时间(您可以在启动画面中获取记录),具体取决于服务器并将所有记录存储在redux存储中。现在,您可以从redux存储中搜索数据,因此无需在每次搜索时都调用API。
确保您的服务器仅发送那些需要在移动应用程序中显示的数据作为响应。因此,获取记录会减少响应时间。
您可以为此使用redux-search。