gpt4 book ai didi

elasticsearch - 在Elasticsearch中具有不同索引/类型的类型中具有相同名称的字段名称

转载 作者:行者123 更新时间:2023-12-02 23:03:10 25 4
gpt4 key购买 nike

我已经在Elasticsearch中阅读了很多关于映射的内容,这是我发现的一些有趣的东西

Field names with the same name across types are highly recommended to have
the same type and same mapping characteristics (analysis settings for
example). There is an effort to allow to explicitly "choose" which field to
use by using type prefix (my_type.my_field), but it’s not complete, and there
are places where it will never work (like faceting on the field).

我从 here文档中找到了上面的报价

现在我的用例就是..这是一个例子。假设tenant1中的 some field必须具有以下映射(对于给定的实体用户):
{
"tenantId1_user": {
"properties": {
"someField": {
"type": "string",
"index":"analyzed"
}
}
}
}

现在,对于不同租户中的相同字段(对于相同的实体类型,假设用户),类型必须更改为:
{
"tenantId2_user": {
"properties": {
"someField": {
"type": "int",
"index":"analyzed"
}
}
}
}

现在,根据我从上述引用中所了解的内容,这意味着从技术上讲,即使我可以提供此映射,也不建议这样做,因为深入的Lucene以相同的方式处理它们。

我的问题是:

1)如何处理用例?我是否应该将每个租户划分为不同的索引,这样我就不必担心这种映射?

2)还有其他解决方法吗?考虑到这样一个事实:如果我有太多的租户,那意味着我会有太多的索引?

3)此用例的推荐方式是什么?

所有帮助表示赞赏!

最佳答案

在您的方案中,您应该为每个租户使用索引。

AFAIK,集群中的索引数量没有限制-仅基于可用物理资源的“自然”限制。

此外,每个租户具有唯一索引将使每个租户获得更少的“惊人”搜索结果。如果它们在同一索引中,则TF-IDF得分将因所有其他租户的文档中搜索词出现的频率而有偏差。

旁注(基于IRC中提出的其他问题):接收索引请求或搜索请求的任何节点都具有集群元数据,该集群元数据指定哪些节点具有针对哪些索引的分片,因此,仅将请求转发至适当的节点。另外,不必担心每个节点上每个索引的碎片。在这种情况下(如果本身),该模型不会对您的部署有任何帮助。

关于elasticsearch - 在Elasticsearch中具有不同索引/类型的类型中具有相同名称的字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29041509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com