我是一个完整的solr noob,所以我可能在这里遗漏重要信息。
Solr版本:10.4.2 平台:Mac OS X
我试图将大约5000个文档添加到空索引中。文件有4个字段:
我使用update/json
在紧密循环中以100个批量插入文档(为每个批次向update/json
端点发出新的HTTP请求)。如果我添加例如每个请求之间100毫秒的延迟,问题会变得更好。如果我延迟一整秒它会完全消失,但这显然是慢得令人无法接受。
我通过为HTTP请求添加非常短的超时(1秒)并实现一些重试逻辑来解决这个问题。它可以工作,但当然我在重试时会一直遇到恼人的延迟。
我的过程常常在等待solr在此过程中的某个时刻做出响应。例如,如果我从一个新的核心开始并立即进行测试,那么这些是我每次运行的结果:
登录solr admin在任何这些运行期间都没有显示输出。在失败或成功运行后的任何时候,我都可以查询索引并根据已添加的数据获得合理的结果。
update/json
请求处理程序是"隐式添加" - 我的solrconfig.xml中没有指定它。
我尝试将我的锁定机制从原生转换为简单而不改变行为。
非常感谢您提供的任何帮助。我不知道从哪里开始。
其他信息:
1:它似乎永远挂了。通过"挂"我的意思是Solr永远不会响应HTTP请求。如果我取消请求并再次发送请求,它通常会立即正常工作。我让它等了大约10分钟才得到答复。
2:我的solrconfig.xml包含:
<updateHandler class="solr.DirectUpdateHandler2">
<updateLog>
<str name="dir">${solr.ulog.dir:}</str>
</updateLog>
<autoCommit>
<maxTime>${solr.autoCommit.maxTime:15000}</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
<autoSoftCommit>
<maxTime>${solr.autoSoftCommit.maxTime:-1}</maxTime>
</autoSoftCommit>
</updateHandler>
答案 0 :(得分:1)
您没有描述实际的&#39;挂起&#39;。是挂了一段时间还是永远?这有很大的不同。
我假设您的实际文档(内容字段?)非常大。
可能有几件事情: