Solrcloud 多核配置

2024-03-23

我有一个独立的Solr具有 4 个不同内核的实例使用嵌入式 Jetty 服务器运行良好。我为 v4.10.3 配置了核心,但自从我迁移到 v5.1 后,一切似乎都工作正常,无需任何更改。

在投入生产之前,我需要将其设置为Solrcloud 安装,最初有 2 个节点(两台不同的机器),每个节点有 1 个分片(为了简单起见)。我一直在努力让它发挥作用,但我一直没能做到。

我尝试像这样运行它(我认为使用 start.jar 不是首选方式),读到 Solr 将在任何嵌套文件夹中查找多个配置的核心(适用于独立 Solr):

java -DzkRun -DnumShards=2 -Dbootstrap_confdir=solr/ -jar start.jar

但这不起作用,它没有找到所需的solrconfig.xml file.

My Solr directory looks like this: 4 cores Solr folder

我的 solr.xml 文件是标准文件:

<solr>

  <solrcloud>
    <str name="host">${host:}</str>
    <int name="hostPort">${jetty.port:8983}</int>
    <str name="hostContext">${hostContext:solr}</str>
    <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
    <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
  </solrcloud>

  <shardHandlerFactory name="shardHandlerFactory"
    class="HttpShardHandlerFactory">
    <int name="socketTimeout">${socketTimeout:0}</int>
    <int name="connTimeout">${connTimeout:0}</int>
  </shardHandlerFactory>

</solr>

Each core looks like this: a core config

core.properties 只有核心的名称:

name=users

我的问题是:

  • 如何启动 Solrcloud v5.1 以便拾取 4 个核心?

在 SolrCloud 中,您的每个Core将成为一个收藏.

每个集合都有自己的一组配置文件和数据。

您可能会发现这很有帮助将多核 SOLR 实例迁移到云端 http://volodk.blogspot.com/2013/08/moving-multi-core-solr-instance-to-cloud.html

Solr 5.0(以上版本)对如何使用分片创建 SolrCloud 设置以及如何添加集合等进行了一些更改。

下面列出的所有内容都是我对 Solr 参考指南的理解。我强烈建议彻底阅读它。https://cwiki.apache.org/confluence/display/solr/Apache+Solr+Reference+Guide https://cwiki.apache.org/confluence/display/solr/Apache+Solr+Reference+Guide

我在 Linux(CentOS)服务器上设置我的服务器,但这些步骤也可以用于在 Windows 系统上设置 solr。例如,有solr.cmd文件而不是solr.sh

以下是我创建简单的两个分片 SolrCloud 设置所遵循的步骤。

  • 设置动物园管理员整体。我假设您正在尝试使用 在solr中嵌入ZK。对于生产系统来说,它是高度 建议创建一个外部 ZK ensemble。您可以在以下位置找到安装外部集成的步骤本节参考指南 https://cwiki.apache.org/confluence/display/solr/Setting+Up+an+External+ZooKeeper+Ensemble

  • 下载solr到/opt文件夹。

  • 仅提取安装文件。

    tar xzf solr-5.0.0.tgz solr-5.0.0/bin/install_solr_service.sh --strip components=2

  • 该命令将install您系统上的 solr

    sudo bash ./install_solr_service.sh solr-5.0.0.tgz

  • 如果不存在,上面的命令将创建一个名为“solr”的新用户。

  • 这些是它将采用的一些默认选项。您可以在以下位置查看此内容/var/solr/solr.in.sh。这是包含文件,您可以在其中指定其他选项。

        * SOLR_PID_DIR=/var/solr
        * SOLR_HOME=/var/solr/data
        * LOG4J_PROPS=/var/solr/log4j.properties
        * SOLR_LOGS_DIR=/var/solr/logs
        * SOLR_PORT=8983
    
  • Running install_solr_service start在上面的步骤中将启动一个solr服务器。使用停止服务器service solr stop在进行以下任何更改之前。

  • 更改 Java 堆值

    SOLR_HEAP="3g"

    这会将 Xmx 和 Xms 设置为 3GB 。 (选修的) Solr 5.1 中的 solr.in.sh 文件中未提及此变量。这是一个错误,已修复,将在下一个版本中发布。

  • SOLR_MODE="solrcloud" Required

    这就是您在云模式下启动 solr 所需要的。

  • ZK_HOST=ZK1:2181,ZK2:2181,ZK3:2181 Required

    (将 zk 替换为您的 Zookeeper 主机名)

  • 运行install_solr_service.sh命令还会创建一个 init.d 文件,如下所示/etc/init.d/solr

  • This init.d脚本依次调用/opt/solr/bin/solr脚本并包含来自的所有变量/var/solr/solr.in.sh

  • 完成上述更改后,使用以下命令再次启动 solrservice solr start

  • 您可以使用以下命令检查状态service solr status

创建集合分片和副本- 所有与分片、集合、副本相关的命令现在均使用集合 API 进行。

  • 在创建集合之前,应将配置文件夹上传到 ZK 。 这可以使用 solr 文件夹中的 zkcli.sh 脚本来完成(不在 Zookeeper 服务器上) 文件夹:/opt/solr/server/scripts/cloud-scripts

  • 上传config文件夹的命令是

sh zkcli.sh -cmd upconfig -zkhost zk1:2181,zk2:2181,zk3:2181 -confname yourconfigname -confdir /var/solr/configs/conf

您将为 4 个核心分别运行此命令 4 次,每次更改 conf 文件夹的路径和配置名称。

  • 这将上传zookeeper中conf文件夹中名为“yourconfigname”的所有配置文件。

创建集合我使用以下命令创建一个新集合。

快乐搜索!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Solrcloud 多核配置 的相关文章

  • solr 查询中的加号未正确处理

    All 我是 Solr 的新手 当我使用 solr 示例导入一些随机文档时 我在 q 中使用搜索查询 如下所示 fund report fund和 之间没有空格 我以为会在文档中搜索 fund report 这个词 这种情况在文档中很少发生
  • SOLR 中的子字符串匹配

    我似乎无法弄清楚如何使用 SOLR 查找子字符串匹配 我已经根据前缀找出了匹配 这样我就可以让火腿与汉堡包匹配 我如何搜索 汉堡 来匹配汉堡包 我试过burger但这引发了错误 或 不允许作为 WildcardQuery 中的第一个字符 如
  • Solr距离过滤

    我正在尝试使用 Solr 进行距离范围搜索 我知道在5公里范围内进行搜索过滤很容易 q fq geofilt pt 45 15 93 85 sfield store d 5 我所追求的是如果我正在寻找一系列的说法 如何做同样的事情5至10公
  • yii2 作曲家更新致命错误

    当我更新我的作曲家以添加yii2 solr扩展我的项目时 我遇到如下错误 The yiisoft yii2 composer plugin requires composer plugin api 1 0 0 this WILL break
  • Lucene 3 上的“令牌”列表

    我是 Lucene 的新手 我开始学习版本 3 分支 但有一件事我不明白 显然是因为我在该主题上没有经验 在 Lucene 2 9 中 如果我想要一个令牌列表 我会创建一个 Token 类的 ArrayList 例如 ArrayList 这
  • Solr 中的多值字段排序

    我有一个 Solr 索引 将每个产品的价格存储在多值字段中 我需要按价格对结果集进行排序 其中价格从低到高 从高到低 我尝试对价格进行排序 它显示错误您无法对 multivalued True 字段进行排序 下面是我的 solr XML
  • 本地/离线网站“站点”的全文搜索[重复]

    这个问题在这里已经有答案了 可能的重复 通过 javascript 对 CD Rom 上的静态 HTML 文件进行全文搜索 https stackoverflow com questions 1357173 full text search
  • 如何判断lucene索引版本?

    我正在编写一个 shell 脚本 csh 它必须确定 lucene 索引版本 然后根据该版本将索引升级到下一个版本 所以 如果 lucene 索引是 2 x 我必须将索引升级到 3 x 最后索引需要升级到6 x 由于升级索引是一个顺序过程
  • Spark Mongo 连接器,MongoShardedPartitioner 不起作用

    出于测试目的 我配置了一个 4 节点集群 每个节点都有一个 Spark Worker 和一个 MongoDB Shard 这些是详细信息 四台 Debian 9 服务器 名为 Visa0 Visa 1 Visa 2 Visa 4 个节点上的
  • Solr MoreLikeThis 不适用于多个分片?

    我在 SolrCloud 中有 5 个节点集群 每个节点有 2 个分片 Solr版本 6 3 0 现在 当我运行 mlt 查询时 它仅返回每个节点的结果 并且不会将它们分布在所有分片 节点上 即 没有给出任何结果 给出结果 我什至尝试将其指
  • Lucene外来字符问题

    我在使用 Zend Lucene 和 等外来字符时遇到了一些严重的问题 这些问题在创建索引和查询索引时都会出现 我已经尝试过 iso 8859 1 和 utf 8 ISO 8859 1 不起作用的查询看起来像 area sk ne 使用 Z
  • 需要在 java api 中的 Solr 搜索中搜索文本及其周围的几行

    我正在使用 solr 7 7 2 并且我使用 solrj 在 Solr 中编写了一个 Java 程序 该程序在一个巨大的文本文件中搜索单词 我使用以下代码来显示代表整个文本的搜索结果 SolrQuery params new SolrQue
  • SLF4J 日志记录到文件 vs. DB vs. Solr

    我需要一些关于 SLF4J 日志记录的建议 目前 我们正在为 Java Web 应用程序使用 SLF4J 日志记录 log4j 绑定 该应用程序使用简单的 ConsoleAppender 我们的下一步是研究可以保存日志的地方 我们的应用程序
  • Solr 您的意思是(拼写检查组件)

    我在我的应用程序中使用 solr 并集成了拼写检查组件 但我遇到了一些问题 第一的 当我输入一个用空格分隔的术语时 他们会给我每个术语的更正 Eg 水 gt 什么术语 但事实是watters 第二 当我输入一些带有错误术语的短语时 尽管其他
  • 我们可以同时使用拼音标记和同义词吗?

    我正在尝试同时启用语音分析器和同义词 这似乎不起作用 它们一起使用有错吗 在下面的实现中 我希望使用同义词转换搜索查询 然后使用语音分析器来检索结果 但我的同义词在这里完全被忽略了 如果我在创建索引时删除语音分析器 那么同义词就可以正常工作
  • Solr 动态价格范围和组

    跟进问题 如何获取 solr 结果中的方面范围 https stackoverflow com questions 33956 how to get facet ranges in solr results SolR 查询 价格范围 htt
  • Solrcloud Zookeper 设置:等待 4000ms 后未找到注册的领导者,集合:c1 切片:shard2

    我使用 solr 4 10 3 我通过 java 中的嵌入式 jetty 服务器启动 solr 我正在尝试使用 2 个分片 领导者 配置 solrcloud 我有一个外部动物园管理员设置 我在启动 solr 时指向动物园管理员实例 如下所示
  • 如何将 Solarium 配置为使用 POST 而不是 GET 请求

    我面临的问题是我们发送到 solr jetty 的 uri 变得很长 超过 9k 字节 超出了 jetty 的默认限制 解决方案是从 GET 请求切换到 POST 请求 因为我们不想增加 jetty 可以接受的 requestHeaderS
  • 在 Solr 中实现术语关联挖掘的最简单方法是什么?

    关联挖矿似乎为检索提供了良好的结果相关术语在文本语料库中 有很多关于这个主题的著作 其中包括著名的LSA http en wikipedia org wiki Latent semantic analysis方法 挖掘关联最直接的方法是构建
  • Solr 索引时间提升 VS 查询时间提升?

    问题 1 我们可以只进行查询时间提升 使用 dismax 而不在索引时间提及提升值吗 问题 2 与查询时间提升相比 索引时间提升有何优点 缺点 反之亦然 查询时间和索引时间提升 在索引时 您可以选择提升特定文档 整个文档或仅一个字段 它作为

随机推荐