问题标签 [solrcloud]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3673 浏览

apache-zookeeper - solr cloud中zookeeper的角色

我是 SolrCloud(4.X) 的新手,谁能详细解释一下 Zookeeper 在 SolrCloud 中的角色和职责?Zookeper 在搜索/添加到 Solr 的请求方面是如何工作的?

0 投票
1 回答
2398 浏览

tomcat - SolrCloud 节点在收集 RELOAD 后关闭

我使用 Solr 4.4、Zookeeper 3.4.5 和 Tomcat 7。

集群设置:3 个分片和 3 个副本。总共 6 个 Solr 实例。

集群已启动并正在运行。一切似乎都很好。日志中没有什么重要的,除了一些关于弃用类的警告。

我如何进行配置更新:

  1. 运行以下命令:

    java -classpath .:solr-jars/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost ZOOKEEPER_HOST:PORT -d solr-conf -confname myconf

  2. 检查 Zookeeper 中的配置是否更新:

    /var/zookeeper/bin/zkCli.sh ZOOKEEPER_HOST:PORT

    ls /configs/myconfig/schema.xml

    ls /configs/myconfig/solrconfig.xml

  3. 通过 Solr Collection API 重新加载集合

    curl HOST/solr/admin/collections?action=RELOAD&name=collection1

配置更新似乎已成功应用于所有节点。但有时集群中的 1 个节点出现故障(在 Solr Admin UI 中标记为棕色)。Tomcat 重新启动,集合重新加载无助于恢复该节点。

来自日志的错误消息:

问题:

  1. 有什么办法可以让失败的节点恢复正常吗?当然,无需删除所有数据。
  2. 在 Zookeeper 中更新配置后,强制 Solr 节点接受配置的正确方法是什么?如果可能,无需重启 Tomcat(它是生产系统)
  3. (可选)总的来说,您对 SolrCloud 稳定性和可预测性有何看法?在与 SC 合作时,我发现很多其他人对此提出了很多抱怨和问题。看起来不是什么好兆头。

更新 1 看起来错误消息与实际问题无关。配置事务日志后,此错误消失。但是在集合重新加载后仍然很少有节点出现故障。

恢复它的唯一方法是直接在 Zookeeper 中编辑 clusterstate.json,并将节点状态更改为“活动”。之后,节点似乎还可以并且稳定。

0 投票
1 回答
270 浏览

solr - Solr 在尝试添加文档时失败

Solr 4 在尝试添加文档并提交时立即停止。我正在 Windows 7 上使用 Tomcat 8 开发 Solr 4,而 Solr 只有一个我使用的内核。在尝试从 SolrNet 提交文档时,Solr 和 Tomcat 都出现故障。我注意到提交的文件很少,但在 Solr 日志中没有发现任何错误。

请注意,这是一个新的 Tomcat 和 Solr 安装。

在应用程序端使用 SolrNet 添加文档时,我收到以下错误:

System.IO.IOException:无法将数据写入传输连接:现有连接被远程主机强行关闭。

更新 我尝试卸载 Tomcat 8 并使用 Solr4 安装 Tomcat 7,但问题仍然相同。

对于可能出现的问题,我们非常感谢任何帮助?要检查什么?在哪里可以找到导致这种情况的错误?

如果您需要更多详细信息,也请告诉我。

谢谢

0 投票
1 回答
565 浏览

solr - 索引大小 400%+ 增长:普通 Solr 实例 vs SolrCloud

我正在尝试不同的基础架构方法,我很惊讶地注意到以下内容。

我已经通过 Solr4.4 中的 sql 查询使用 DataImportHandler 索引了 130 万个文档(所有字段被索引、存储和一些 shingle-analyzed)

方法 1:单个 Solr 实例

索引时间:~10 分钟

“索引”文件夹大小:1.6GB

方法 2:具有两个索引切片的 SolrCloud。

索引时间:~11 分钟

“索引”文件夹的大小:1.6GB + 1.5GB = 3.1GB

每个索引切片都有大约 0.65M 的文档添加到预期的原始总数中。

Approach3:SolrCloud 有两个分片(1 个领导者 + 1 个副本)

索引时间:~30 分钟

“索引”文件夹的大小:Leader (4.6GB),replica (3.8GB) = 8.4GB(预计为 1.6gb * 2,但约为 1.6gb*5.25)

我遵循了SolrCloud 教程

我意识到有一些元数据(如果我错了,请纠正我),如术语字典等,无论切片(分区)或分片(复制),它们都必须存在于所有实例中。

然而,方法 2 和方法 3 显示最终索引大小急剧增长 ( 400% )。

请您提供见解。

0 投票
1 回答
2041 浏览

tomcat - 如何使用 Tomcat + 3 个外部 ZooKeeper 在 3 个不同的 VM 上使用 SolrCloud 部署 Solr?

我正在尝试使用 SolrCloud 部署具有 SolR 4.2(在 Tomcat 7 实例上)的 3 个 VM 集群,每个实例中都有一个外部 ZooKeeper(3.4.5)(我使用的是 Windows Server 2008 R2) 但出现了问题,我没有具体的错误,但是当我在一个实例上发送文档时,它们总是在该实例上被索引,而其他的则看不到它。简而言之,即使 Zookeeper 实例可以,它们看起来也不会相互通信。(我有一个多核 SolR 配置

这里有我部署 SolrCloud 的步骤(本教程之后)。


1)我已经安装了 ZooKeeper 并在每个实例中创建了一个 zoo.cfg 文件,修改了示例文件的一些行:

2) 我在 SolR 的 Tomcat 的 context.xml 中添加了以下几行(我还尝试从 3 个实例中的 2 个中删除第一行和第二行,但没有任何变化):

3) 我在每个实例的每个核心的 schema.xml 和 solrconfig.xml 中添加了版本字段、“复制”和“获取”处理程序以及更新日志,如http://wiki.apache.org/solr/SolrCloud中所指定#Required_Config

4) 在 solr.xml 中,我将hostPort="8080" 放入 'cores' 标记 5) 然后我在每个实例中启动 ZooKeeper(使用 bin/zkServer.cmd),然后在每个实例中将 Tomcat 作为服务启动 ZooKeeper 实例似乎正确通信,只有在我启动所有 3 个 ZK 之前,日志中才会出现一些错误,然后它会记录以下内容:

Solr 实例不记录错误或警告。我停止了 3 台机器上的所有防火墙/代理(它们在同一个 LAN 上并且彼此正确通信)。

0 投票
1 回答
166 浏览

distribute - SolrCloud 分布式搜索

完成分布式搜索后,初始查询将转发到我们正在查询的特定集合中的所有分片。

我的问题是,哪台机器对分片结果进行聚合?

是接收初始请求的机器吗?

0 投票
2 回答
695 浏览

solr - 为 Solr 设置简单复制?

我正在使用 Solr 4,它目前在一台机器上。但是,我想在另一台机器上使用 Solr Core 设置复制。我已经在另一台机器上安装了 Solr。

但是,我不确定如何使用 Zookeeper 来设置一个非常简单的 Solr 复制。

关于如何开始的任何想法?

0 投票
0 回答
154 浏览

java - 使用 CloudSolrServer SolrJ 4.4 获取 IndexReader

我想以编程方式使用 FastVectorHiglighter.getBestFragments(...) 。为此,我需要指定请求的 IndexReader 对象。

问题是我无法获得请求本身。SolrQuery 对象提供的只是 queryRespose。

试图创建我自己的 SolrCore 对象

尽管 above(getReader()) 结果为空。将使用一些提示:如何使用 solrCloud 获取 indexReader。

先感谢您

0 投票
1 回答
963 浏览

java - Solr Cloud 中的分布式拼写检查问题

我正在从主从配置迁移到 Solr Cloud。我要迁移到的 Solr 版本是 4.4。我有 2 个分片,每个分片有 1 个副本。我面临一个分布式拼写建议的问题。我已经在我的请求处理程序中打开了拼写组件。这个想法是将建议(如果有的话)作为查询响应的一部分。

拼写检查搜索组件也非常标准。

我在两个分片中都运行了spellcheck.build=true。现在,如果我运行查询,

响应没有返回任何建议。但是,如果我明确添加distrib=false,我会收到建议

由于我的查询需要分发,并且我不希望单独的查询仅用于拼写检查,因此这种方式无法达到目的。

对此的任何指针将不胜感激。

  • 谢谢
0 投票
1 回答
9040 浏览

solr - 在 Solr 4 中配置健康检查

如何配置健康检查?

Solr 4 中的 Healthcheck 文件是什么?以及它是如何使用的?我正在配置 Solr Cloud 并找到了对这个文件的引用,它应该在那里,但没有找到任何示例配置。

任何关于如何使用它的链接/文章/示例都非常感谢。