我正在一个多租户应用程序中使用RediSearch构建一个索引,该应用程序具有:
- 150,000 名租户
- 每个租户平均有 3,500 名客户
- 每个客户有 10 个字段将被添加到索引中
- 所有字段都是
TextFields
.
问题是,在这种情况下,最佳实践(性能、内存/存储、灵活性)是什么?
我应该创建一个customer_index
字段tenant_code
来帮助识别哪些数据属于哪个租户,还是应该创建一个租户特定的索引?
根据我目前的经验和理解,租户特定索引意味着许多索引,但其中的数据较少,而且它还可以让我灵活地为特定租户删除和重新创建索引?
在 Python 中,代码如下:
单一客户指数
client = Client(`customer_index`)
client.create_index(
[
TextField('tenant_code'), TextField('last_name'), TextField('first_name'),
TextField('other_name'),
]
)
租户特定客户指数
client = Client(`tenant_code_customer_index`)
client.create_index(
[
TextField('last_name'), TextField('first_name'), TextField('other_name'),
]
)