gpt4 book ai didi

solr - 关于Solr Sharding的问题

转载 作者:行者123 更新时间:2023-12-01 06:39:13 25 4
gpt4 key购买 nike

我们有一个产品(我们称之为“prod1”),我们想要与另一个产品(我们称之为“prod2”)“集成”,当“集成”意味着 prod1 + prod2 将成为“prod3” .我们也有一些计划将更多的“产品”添加到 prod3 中。

到目前为止一切顺利。

我们使用 Solr 在这两种产品中提供用户搜索,这两种索引都可能非常非常大,并且每秒接收大量调用。如果我们将所有内容都放在一台服务器中,吞吐量将一塌糊涂。

所以,我们正在考虑使用分片(我相信这是正确的术语,如果我错了,抱歉),但是,我对此有一些疑问:

  1. 是否可以按“每台机器一个产品索引”或类似的方式拆分索引?如果是,你建议我怎么做?

  2. 如果(问题 1 == true)那么我们假设 prod1 的索引是 machine1,prod2 的索引是 machine2,我可以在 machine1 和 2 中进行搜索,将结果与分数、偏移量等“合并”吗,以“简单”和正确的方式?

  3. 我阅读了一些有关复制因子的内容,但我认为我没有理解正确。它的具体用途是什么?

  4. 我不确定我在这里使用的术语是否正确,所以,也许有人可以澄清什么是核心、分片等。这种“简单”的疑问在我的脑海中产生了很多误解团队。

到目前为止,这是问题。也许我稍后会对其进行编辑并添加更多内容。

提前致谢。

最佳答案

按顺序回答你的问题:

  1. 如何分发文档由您决定。您选择要将文档索引到哪个服务器,如果您决定为一个产品索引 pr 执行此操作。服务器,这是您的决定(根据文档源自哪个产品选择要用于索引的服务器)。

  2. 是的。发送到 Solr 的查询字符串的 shards=- 参数指示应搜索哪些服务器并将其合并到一个响应中。只要您不认为偏移量过高是一个可能的问题,这应该不是问题(偏移量高的问题是 Solr 必须从每个服务器检索最多(偏移量)文档,才能对所有分片进行评分)。

    shards=server1:8080/solr/corename,server2:8080/solr/corename

  3. 复制因子与 SolrCloud 相关,它隐藏了进行手动分片的一些复杂性(但也引入了一些)。使用 SolrCloud,Solr 将自行决定将哪些节点用于存储,而复制因子会告诉 Solr 您希望将文档存储在多少台服务器上。如果您的复制因子是三,则在文档变得不可访问之前,至少有三台服务器必须发生故障。如果您进行手动分片,则必须自己设置复制并知道哪些服务器是备份服务器,就像您在常规 Solr 设置中所做的那样。

  4. Shard = 服务器只保留索引中所有文档的一个子集,core = 一个服务器上的一个索引 - 一个服务器可能包含多个核心,其中每个核心是一组单独的配置和模式(以前您在每个 Solr 实例中只能有一个核心 - Solr 只有一个索引,仅此而已)。 SolrCloud 首次与 Solr 4.0 一起发布,并开始获得一些关注。

Solr Wiki是开始挖掘有关这些概念的更多信息的好地方。

关于solr - 关于Solr Sharding的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13630030/

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