问题标签 [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.
solr - Solr Query - 计算术语的平均位置
给定一个查询和一个术语,我如何计算该术语在查询中每个文档中的平均位置并返回它?我正在寻找最快(性能方面)的解决方案并愿意扩展 solr 功能。
之后,我需要计算一个词在查询中所有文档中的平均位置。有了这个,我不需要将文档主题级别返回给客户 - 只是平均术语位置。
谢谢萨尔
solr - 在 Windows 8 上使用 apache tomcat 7 设置 solr 多核问题
solr
我试图在使用apache tomcat 7
on时进行多核设置windows 8
。solr 主页打开,但没有出现核心。我检查了日志记录部分,出现以下错误:
这是我尝试添加 collection1(默认核心)时的堆栈跟踪:
我已经在 stackoverflow 中提到了Tomcat SOLR 多核设置,但没有帮助。另外,浏览了帖子中给出的博客链接,但又没用了。
堆栈跟踪如下:
这是我的 Solr.xml
更新的问题: solrconfig.xml
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 ,这可以贡献吗?
很抱歉这篇长文,但我正在努力解决这个问题,特别是当查询在具有类似硬件和网络的主从环境中运行良好时。
任何指针将不胜感激。
- 谢谢
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中?以及如何进行文档路由?
请帮我解决问题。
谢谢!
solr - Solr 标记搜索结果
我对 solr 的搜索查询具有以下性质,
我想要实现的是,当我触发查询时,返回的结果应该能够用哪个部分或 OR 来标记结果。如果以上三个部分都适用,则结果应表明相同。我尝试了 group.query 功能,但它似乎不适用于 solr 云。
谢谢,
阿尤什
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 点中的担忧。
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。
这是主设置:
和从站设置:
java - 从 Solr 组件代码中获取 Zookeeper url 和 Solr 集合名称
我正在编写一个自定义 Solr 组件,它使用CloudSolrServer实例对分布式索引执行辅助查询。我solrconfig.xml
以通常的方式从配置中获取 Zookeeper url 和集合名称:
我想从我的solrconfig.xml
文件中删除 Zookeeper url 条目和集合名称条目。是否可以从其他地方获取这些值?我正在运行我的组件的同一个集合上执行辅助查询。如何从组件代码中获取我的集合名称及其 Zookeeper url?
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,但它似乎不起作用。
solr - Solrcloud 和具有不同模式的多个核心
最近,我使用 Windows/Tomcat/Solr 实现(Solr 版本 4.4)打开了 zookeeper,并使用-DzkRun
and-Dbootsrap_confdir
选项让它运行良好。
了解这也会启动 zookeeper 并告诉它从 confdir 参数加载配置;但是,因为我只能将配置指向其中一个核心,所以两个核心都使用相同的架构。
我shareschema
在文件中找到了一个选项solr.xml
并将其设置为 false,但单个架构似乎仍然只为两个内核加载。
还检查了 Solr 下一版本的发行说明,没有看到任何解决此问题的内容。
Tomcat 的多个实例可能是解决此问题的一种方法,但似乎应该有一种方法可以使用 zookeeper 选项提供多个模式。