spring - Spring elasticsearch:为每个用户创建索引
问题描述
我正在使用 Spring boot 和 elasticsearch (& spring-data-elasticsearch) 构建一个应用程序。
我有一个包含区域列表的实体用户(即每个用户负责一组区域)。
我有另一个与区域相关联的实体报告(即每个报告都有一个区域)
我想为每个用户创建报告索引。这样每个索引只包含用户负责的区域的报告。
这样,当用户搜索报表时,搜索只应用在他的索引中。
此外,这些索引必须是动态的(即,如果用户的区域发生变化或添加新报告,则更新)。
我怎样才能做到这一点?谢谢您的帮助
解决方案
为什么不以这样的方式对用户进行建模,以便将用户相关信息存储在一行(文档)中,我认为嵌套字段是个好主意,并且可以使用嵌套查询来搜索它们,
例如,每个用户负责一组区域,因此区域可以嵌套在用户中,因为区域是嵌套的,它们将存储为单独的文档
@Field(type=FieldType.Nested)
private Set<Regions> regions;
其次,我不认为每次都建立一个新索引是一个好主意
推荐阅读
- php - 无法上传数据库中的文件
- python-3.x - 在 python 中更新 AWS Lambda 函数的环境变量
- json - 需要帮助修复 homebridge 插件的 JSON
- batch-file - 为什么我的 Jenkins Doxygen make.bat 不工作?
- python - 什么是使 find_monthly_savings 函数返回金额除以 Python 中一年(十二个月)中的月份的正确方法
- php - 如何在 laravel 中配置多认证的 web 路由和 api 路由?
- c# - 如何使用 GPU 在 opencv 中使用 DNN 前向函数进行锐化
- excel - 使用复制范围方法获取运行时错误 1004
- python - 为什么在函数内更改 pd 数据框时会收到 SettingWithCopyWarning?
- python - OSError:[WinError 123](文件名错误)但项目以前工作