首页 > 解决方案 > 使用 React UI 和 Spring Boot 服务器实现用户搜索的建议

问题描述

我有一个 Spring Boot/React 应用程序。我的数据库中有一个用户列表,我将已经从 LDAP 填充。

作为表单的一部分,我需要允许用户指定用户列表。由于他们可以从多达 400,000 个用户(大多数在 10k 或更少的范围内)搜索(并且在技术上也指定),我假设我需要在客户端和服务器端都这样做。

有人对方法或技术有任何建议吗?

我没有使用少量数据,但我也不想过度设计它(提示主要用于服务器端,但欢迎任何提示)。

标签: reactjsspring-bootelasticsearch

解决方案


当您拥有一小组数据时,另一个答案很好并且工作得很好,但请注意它的一些设计问题。

  1. Lucene 不是分布式的,如果不复制整个索引,您将无法轻松地将其扩展到多台水平机器,这在您拥有一小组数据时非常好,事实上它非常快,因为不会有网络调用(在弹性搜索的情况下,它将是)。
  2. 如果您想构建一个易于 HS(水平可扩展)的无状态应用程序,那么使用 Lucene 将无济于事,因为它是有状态的,您需要在新生成的应用程序服务器在 Lucene 中完成本地索引之前创建 Lucene 索引。
  3. Elasticsearch(ES) 是基于 rest 的,是用 JAVA 编写的,并且具有非常好的java-client,您可以轻松地将其用于简单到复杂的用例。

最后但并非最不重要的一点是,请仔细阅读 Elasticsearch 的创建者 shay banon 的STOF 答案,他解释了为什么他首先创建了 ES :),这将为选择最佳解决方案提供更多权衡和见解你的用例。


推荐阅读