问题标签 [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 投票
2 回答
902 浏览

solr - Solr Query - 计算术语的平均位置

给定一个查询和一个术语,我如何计算该术语在查询中每个文档中的平均位置并返回它?我正在寻找最快(性能方面)的解决方案并愿意扩展 solr 功能。

之后,我需要计算一个词在查询中所有文档中的平均位置。有了这个,我不需要将文档主题级别返回给客户 - 只是平均术语位置。

谢谢萨尔

0 投票
2 回答
2410 浏览

solr - 在 Windows 8 上使用 apache tomcat 7 设置 solr 多核问题

solr我试图在使用apache tomcat 7on时进行多核设置windows 8。solr 主页打开,但没有出现核心。我检查了日志记录部分,出现以下错误:

这是我尝试添加 collection1(默认核心)时的堆栈跟踪:

我已经在 stackoverflow 中提到了Tomcat SOLR 多核设置,但没有帮助。另外,浏览了帖子中给出的博客链接,但又没用了。

堆栈跟踪如下:

这是我的 Solr.xml

更新的问题: solrconfig.xml

0 投票
1 回答
2030 浏览

java - Solrcloud 性能问题

我正在从传统的主从模型过渡到 SolrCloud。我正在使用 Solr 4.4 并设置了 2 个分片,每个分片有 1 个副本。我有 3 个动物园管理员合奏。所有节点都在 AWS EC2 实例上运行。分片位于 m1.xlarge 上并共享一个 zookeeper 实例(安装在单独的卷上)。为每个 solr 实例分配 6 GB 内存。

我在索引中有大约 1000 万个文档。使用之前的独立模型,查询平均约为 100 毫秒。到目前为止,SolrCloud 的查询响应非常糟糕。查询响应时间超过1000ms,经常达到2000ms。由于额外的服务器、网络延迟等,我预计会出现一些激增,但这种差异确实令人困惑。两种情况下的硬件都是相似的,除了几个 SolrCloud 节点也共享 zookeeper。m1x.large I/O 很高,因此也不应该成为瓶颈。

与旧设置的另一个区别是我正在使用新的 CloudSolrServer 类,该类具有 3 个 zookeeper 参考用于负载平衡。但我不认为它有任何重大影响,因为从 Solr 管理查询面板执行的查询证实了缓慢。

以下是我的一些配置设置:

提交频率

布尔子句:

缓存设置:

查询监听器:

请求处理程序:

我注意到的一件事是 queryresultcache 命中率非常低,不确定我们的查询是否总是那么独特。我正在使用 edismax 并且有一个 recip(ms(NOW,PublishDate),3.16e-11,1,1)^2.0 ,这可以贡献吗?

很抱歉这篇长文,但我正在努力解决这个问题,特别是当查询在具有类似硬件和网络的主从环境中运行良好时。

任何指针将不胜感激。

  • 谢谢
0 投票
3 回答
3562 浏览

solr - 如何使用 solrj 索引特定分片中的数据

我使用 solrj 作为客户端将文档索引到 solr 云中(使用 solr4.5)

我需要根据tenant_id 保存文档,所以我正在尝试进行文档路由。仅当使用numShards参数(http://searchhub.org/2013/06/13/solr-cloud-document-routing/)创建集合时才有可能

我在 solr 云中有两个 solr 实例(example1/solr 和 example2/solr)和在 2181 端口运行的 exrenal zookeeper。

这两个实例都包含名为collection1的集合

我又创建了一个名为newCollection的集合(有两个分片和两个副本),使用 http://localhost:8501/solr/admin/collectionsaction=CREATE&name=newCollection&numShards=2&replicationFactor=2&maxShardsPerNode=2&router.field=id

所以在example1/solr->我有newCollection_shard1_replica1 & newCollection_shard2_replica1,

在 example2/solr -> 我有 newCollection_shard1_replica2 & newCollection_shard2_replica2

我将 example1/solr/collection1/conf 复制到所有分片和副本

我重新启动了 zookeeper 服务器以及 solr 实例:

zookeeper->zkServer.cmd

example1/solr-> java -Dbootstrap_confdir=./solr/newCollection_shard1_replica1/conf -Dcollection.configName=myconf -DzkHost=localhost:2181 -jar start.jar

example2/solr->java -DzkHost=localhost:2181 -jar start.jar

(两个实例运行在不同的端口,一个在 8081,另一个在 8051)


我正在使用 solrj 客户端来索引文档

这是我的示例代码

但是它将文档保存在id shard1!513 的collection1中,solrconfig.xml 中是否需要进行任何配置更改(我使用的是 solr4.5 附带的默认 solrconfig.xml)

如何将文档保存在我的newCollection中?以及如何进行文档路由?

请帮我解决问题。

谢谢!

0 投票
1 回答
36 浏览

solr - Solr 标记搜索结果

我对 solr 的搜索查询具有以下性质,

我想要实现的是,当我触发查询时,返回的结果应该能够用哪个部分或 OR 来标记结果。如果以上三个部分都适用,则结果应表明相同。我尝试了 group.query 功能,但它似乎不适用于 solr 云。

谢谢,

阿尤什

0 投票
1 回答
1958 浏览

solr - Solr 单索引 vs Solr 多核

我需要一些帮助来决定在单个 Solr 实例中创建单个索引与在单个 Solr 实例中创建多个核心,每个核心服务一个索引。我的理解是,solr 中的单个索引通常用于索引一种类型的文档。当您拥有不同的文档类型时,最佳做法是什么?例如,如果您想索引发票交易的详细信息,您可以创建一个包含发票交易文档字段的模式,如下所示;

  • 发票日期
  • 截止日期
  • 发票总结
  • 帐单联系人
  • invoiceLineItems
  • 笔记

假设您还想索引产品的详细信息,您是否会创建一个具有如下架构的新文档类型;

  • 产品代码
  • 产品描述
  • 售价
  • 购买价格
  • 手上
  • 平均成本
  • 笔记

并在 Solr 中创建一个新核心来索引产品文档?或者您会将交易和产品合并到一个模式中,如下所示;

  • 发票日期
  • 截止日期
  • 发票总结
  • 帐单联系人
  • invoiceLineItems
  • 产品代码
  • 产品描述
  • 售价
  • 购买价格
  • 手上
  • 平均成本
  • 笔记

并且只有一个核心索引上述文档,而不是有一个“发票”核心和一个“产品”核心索引两个不同的文档?

我想当字段相似时,像Solr wiki中建议的那样拥有一个单一的平面索引是有意义的,但是在上面这样的示例中,数据甚至没有远程相关,因为它们是独立的实体。我见过人们建议添加一个额外的字段来区分不同实体的情况,例如表名字段或类似字段,并根据表名字段过滤查询,我猜这是可行的。我不确定当您有如下用例时,它的可扩展性有多大;

“在发票中搜索关键字“John”,要搜索的字段是“billingContact”、“invoiceSummary”、“notes”。在查询时提升“billingContact”字段。同时搜索产品“John”,要搜索的字段是“ productDescription'、'supplier'、'notes'。在查询时提升 'supplier'。仅返回 100 个发票和 100 个产品。

我正在处理的应用程序需要从一个表单中搜索发票和产品。应用程序中没有不同的部分可以搜索不同的内容。

我担心将所有内容都放在一个索引中;

1)索引规模大如:5000万张发票+5000万单索引产品

2) 重新索引该大小的索引。

3)索引调整:调整/调整每个单独的索引以服务于特定的预期搜索结果会更容易吗?而不是尝试在单个索引中做到这一点?

4) 我们决定将来也将计费联系方式编入索引。这将添加更多要索引的字段,并有助于我在第 1 点和第 2 点中的担忧。

0 投票
1 回答
3272 浏览

solr - solr ReplicationHandler - SnapPull 无法下载文件

在从主服务器复制到从服务器期间,我们不断收到此异常。我们的索引大小是 9.7 G,我们正在尝试从头开始复制一个从站。

2013 年 10 月 30 日 18:22:16,996 [explicit-fetchindex-cmd] 错误 ReplicationHandler - SnapPull 失败:org.apache.solr.common.SolrException:无法完全下载 _41c_Lucene41_0.doc。在 org.apache.solr.handler.SnapPuller$DirectoryFileFetcher.fetchFile(SnapPuller.java:1146) 在 org.apache.solr.handler.SnapPuller$DirectoryFileFetcher.fetchFile(SnapPuller.java:1146) 下载 0!=107464871。 org.apache.solr.handler.SnapPuller.fetchLatestIndex(SnapPuller.java:405) 的 org.apache.solr.handler.ReplicationHandler.doFetch(ReplicationHandler. java:319) 在 org.apache.solr.handler.ReplicationHandler$1.run(ReplicationHandler.java:220)

我在一些线程中读到 solr 4.1 中有一个相关的错误,但我们正在使用 solr 4.3 并尝试使用 4.5.1。有时DirectoryFileFetcher 无法下载文件,文件下载到大小为零的salve。

这是主设置:

和从站设置:

0 投票
1 回答
697 浏览

java - 从 Solr 组件代码中获取 Zookeeper url 和 Solr 集合名称

我正在编写一个自定义 Solr 组件,它使用CloudSolrServer实例对分布式索引执行辅助查询。我solrconfig.xml以通常的方式从配置中获取 Zookeeper url 和集合名称:

我想从我的solrconfig.xml文件中删除 Zookeeper url 条目和集合名称条目。是否可以从其他地方获取这些值?我正在运行我的组件的同一个集合上执行辅助查询。如何从组件代码中获取我的集合名称及其 Zookeeper url?

0 投票
1 回答
2550 浏览

solr - JNDI 中没有 /solr/home 虽然它是在 Catalina/localhost/solr.xml 中设置的

我已将 solr-4.5.0 配置为与 tomcat7 和 zookeeper 3.3.5 一起使用(来自 debian 包)根据许多教程,我创建了以下Catalina/localhost/solr.xml文件

我已经在 2 台机器上配置了 solr 以在云中工作(使用 zookeeper 来保持配置)。在两台机器上,启动tomcat7时,我看到以下错误catalina.out

有趣的是,在该文件的开头,我看到:

当然我想在 JNDI 中配置 solr/home,而不是在 solr.war 中。知道可能出了什么问题吗?

PS:这个问题不是这样的问题的重复: How to set solr/home in linux OS? 这: 在Tomcat中部署战争 不同之处在于我正在定义solr / home,但它似乎不起作用。

0 投票
1 回答
1635 浏览

solr - Solrcloud 和具有不同模式的多个核心

最近,我使用 Windows/Tomcat/Solr 实现(Solr 版本 4.4)打开了 zookeeper,并使用-DzkRunand-Dbootsrap_confdir选项让它运行良好。

了解这也会启动 zookeeper 并告诉它从 confdir 参数加载配置;但是,因为我只能将配置指向其中一个核心,所以两个核心都使用相同的架构。

shareschema在文件中找到了一个选项solr.xml并将其设置为 false,但单个架构似乎仍然只为两个内核加载。

还检查了 Solr 下一版本的发行说明,没有看到任何解决此问题的内容。

Tomcat 的多个实例可能是解决此问题的一种方法,但似乎应该有一种方法可以使用 zookeeper 选项提供多个模式。