努力为我的项目创建多租户架构。 我创建了一个带有索引'tenant'的弹性搜索集群
“租户”:{ “some_type”:{ “_routing”:{ “必需”:是的, “路径”:“tenantId” },
现在,
我还创建了一些别名 -
"tenant" : {
"aliases" : {
"tenant_1" : {
"index_routing" : "1",
"search_routing" : "1"
},
"tenant_2" : {
"index_routing" : "2",
"search_routing" : "2"
},
"tenant_3" : {
"index_routing" : "3",
"search_routing" : "3"
},
"tenant_4" : {
"index_routing" : "4",
"search_routing" : "4"
}
我在tenantId = 2
中添加了一些数据毕竟,我试图查询'tenant_2',但我只获得了部分结果,而查询'租户'索引则直接返回完整结果。
为什么?
我确信路由应该查询tenantId = 2的文档所在的所有分片。
答案 0 :(得分:0)
在elasticsearch中创建别名后,您必须仅使用别名执行所有操作。无论是索引,更新还是搜索。
再次尝试重新索引数据并检查是否可能(如果是测试索引,我希望如此)。
删除所有索引。
curl -XDELETE 'localhost:9200/' # Warning:!! Dont use this in production.
Use this command only if it is test index.
再次创建索引。再次创建别名。对别名进行所有索引,搜索和删除操作。甚至导入数据也应该通过别名来完成。