我正在开发一个需要高效实时搜索功能的 Web 应用程序。我的应用程序有一个包含超过一百万条记录的数据集,我需要在用户键入时为他们提供快速准确的搜索结果。数据集也会定期更新,因此解决方案需要能够在不影响搜索性能的情况下处理更新。
我考虑过使用像 Fuse.js 这样的工具进行简单的客户端过滤,但我担心如此大的数据集的性能问题。另一方面,像 Elasticsearch 这样的服务器端解决方案似乎有点矫枉过正,并且可能会由于网络往返而引入延迟。
在具有大型动态数据集的 Web 应用程序中实现实时搜索的最有效和可扩展的方法是什么?理想情况下,我正在寻找一种解决方案,它可以在客户端和服务器端处理之间提供平衡,同时最大限度地减少对整体性能的影响。
这是我的数据结构的示例:
{
"id": 1,
"name": "John Doe",
"email": "[email protected]",
"city": "New York"
},
{
"id": 2,
"name": "Jane Smith",
"email": "[email protected]",
"city": "San Francisco"
},
// ... more records
]