带有弹簧数据弹性搜索的多租户

miroslav_mijajlovic

有什么方法可以使spring-data-elasticsearch适用于多租户应用程序?

我已经使其无需多租户即可工作,但是我不知道每个租户如何拥有多个索引或多个节点?我想知道是否有任何方法可以为每个租户定义不同的索引名称,或者在我的实体类中添加使用正确注释的瞬态属性@Document(...)当我尝试执行此问题时,该问题@Transient也已标记为ElasticSearchRepository任何的想法?

本杰明·M

首先,您必须了解Elasticsearch(尤其是Lucene)如何存储数据。

Elasticsearch的命名约定“ index”和“ type”有点误导,很可能不是您最初想到的!


如果您id, field1, field2在Elasticsearch的索引中创建类型(),它将创建类似于SQL表的内容:

id     | field1 | field2
-------------------------
string | int    | boolean

您可能不会想到的是,当您id, type2field向该索引添加第二种类型(时会发生什么索引映射将变为:

id     | field1 | field2  | type2field
--------------------------------------
string | int    | boolean | string

发生这种情况是因为没有类型映射-即使Elasticsearch使它看起来像那样。索引级别只有一个映射!这样,您很可能最终会遇到很多空字段。


尽管通常,特别是对于多租户设置,您应该为每个类创建索引-请勿输入!您应该使用该类型来分离相似的形状数据,即为租户使用类型。或在映射中添加其他字段以标识租户。


在此处了解更多信息:https : //www.elastic.co/guide/zh-CN/elasticsearch/guide/current/mapping.html#_type_takeaways

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章