有什么方法可以使spring-data-elasticsearch适用于多租户应用程序?
我已经使其无需多租户即可工作,但是我不知道每个租户如何拥有多个索引或多个节点?我想知道是否有任何方法可以为每个租户定义不同的索引名称,或者在我的实体类中添加使用正确注释的瞬态属性@Document(...)
。当我尝试执行此问题时,该问题@Transient
也已标记为ElasticSearchRepository
。任何的想法?
首先,您必须了解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] 删除。
我来说两句