我目前正面临SOLR的问题(更确切地说是奴隶复制),在花了很多时间在网上阅读后,我发现自己不得不要求一些启示.
- Solr的索引规模是否有一些限制?
在处理单个主服务器时,何时决定使用多核或多索引?是否有任何迹象表明何时达到一定的索引大小,建议进行分区?
- 从主站到从站复制段时是否有最大大小?
复制时,当从属设备无法下载内容并将其编入索引时,是否存在段大小限制?当有大量流量要检索信息和要复制的大量新文档时,奴隶无法复制的阈值是多少.
更事实的是,这里是导致我提出这些问题的背景:我们想要索引相当数量的文档,但是当数量达到十几万时,奴隶就无法处理它并开始无法复制SnapPull错误.文档由几个文本字段组成(名称,类型,描述,...大约10个其他字段,最多20个字符).
我们有一个主服务器和两个从主服务器复制数据的从服务器.
这是我第一次使用Solr(我通常在使用spring,hibernate的webapps上工作......但没有使用Solr),所以我不确定如何解决这个问题.
我们的想法是暂时向主服务器添加多个核心,并从每个核心复制一个从服务器.这是正确的方法吗?
如果是,我们如何确定所需的核心数量?现在我们只是试着看看它的行为和调整,如果有必要,但我想知道是否有任何最佳实践或某些基准已经针对这个特定主题.
对于具有此平均大小的此数量的文档,需要x核心或索引...
感谢您对我如何处理大量平均大小的文档的任何帮助!
这是从属设备尝试复制时抛出的错误的副本:
ERROR [org.apache.solr.handler.ReplicationHandler] - <SnapPull failed >
org.apache.solr.common.SolrException: Index fetch failed :
at org.apache.solr.handler.SnapPuller.fetchLatestIndex(SnapPuller.java:329)
at org.apache.solr.handler.ReplicationHandler.doFetch(ReplicationHandler.java:264)
at org.apache.solr.handler.SnapPuller$1.run(SnapPuller.java:159)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:280)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:135)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:65)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:142)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:166)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.RuntimeException: java.io.IOException: read past EOF
at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1068)
at org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:418)
at org.apache.solr.handler.SnapPuller.doCommit(SnapPuller.java:467)
at org.apache.solr.handler.SnapPuller.fetchLatestIndex(SnapPuller.java:319)
... 11 more
Caused by: java.io.IOException: read past EOF …Run Code Online (Sandbox Code Playgroud)