reactjs - 使用 React UI 和 Spring Boot 服务器实现用户搜索的建议
问题描述
我有一个 Spring Boot/React 应用程序。我的数据库中有一个用户列表,我将已经从 LDAP 填充。
作为表单的一部分,我需要允许用户指定用户列表。由于他们可以从多达 400,000 个用户(大多数在 10k 或更少的范围内)搜索(并且在技术上也指定),我假设我需要在客户端和服务器端都这样做。
有人对方法或技术有任何建议吗?
我没有使用少量数据,但我也不想过度设计它(提示主要用于服务器端,但欢迎任何提示)。
解决方案
当您拥有一小组数据时,另一个答案很好并且工作得很好,但请注意它的一些设计问题。
- Lucene 不是分布式的,如果不复制整个索引,您将无法轻松地将其扩展到多台水平机器,这在您拥有一小组数据时非常好,事实上它非常快,因为不会有网络调用(在弹性搜索的情况下,它将是)。
- 如果您想构建一个易于 HS(水平可扩展)的无状态应用程序,那么使用 Lucene 将无济于事,因为它是有状态的,您需要在新生成的应用程序服务器在 Lucene 中完成本地索引之前创建 Lucene 索引。
- Elasticsearch(ES) 是基于 rest 的,是用 JAVA 编写的,并且具有非常好的java-client,您可以轻松地将其用于简单到复杂的用例。
最后但并非最不重要的一点是,请仔细阅读 Elasticsearch 的创建者 shay banon 的STOF 答案,他解释了为什么他首先创建了 ES :),这将为选择最佳解决方案提供更多权衡和见解你的用例。
推荐阅读
- kotlin - Kotlin 协程会始终在同一个线程上运行吗?如果不是,那么我们如何使其与 Guice Request Scope 语义一起使用?
- javascript - 滚动时旋转图像 - javascript/jquery
- mysql - 在这个 sql Fifddle 示例中,“a”在哪里。字符不断来自?它根本不在桌子上
- c - 为什么在尝试填充 gtk_list 时出现分段错误?
- ios - 您可以将 UIImage exif 数据复制到缩放的 UIImage 吗?
- c++ - 使用包含每个重复次数的列表生成重复的升序整数序列,并带有推力
- apollo - Apollo GraphQL:预取数据,但查询命中服务器而不是从缓存加载?
- c++ - CMake:使静态库有效,但动态无效
- ios - Swift 4 WKWebView cookie 获取和删除同步问题
- c# - 连续回发