solr update/json半随机挂起
我是个彻头彻尾的独行侠,所以我可能错过了这里的重要信息 Solr版本:10.4.2 平台:MacOSX 我正试图将大约5000个文档添加到一个空索引中。文档有4个字段:solr update/json半随机挂起,solr,Solr,我是个彻头彻尾的独行侠,所以我可能错过了这里的重要信息 Solr版本:10.4.2 平台:MacOSX 我正试图将大约5000个文档添加到一个空索引中。文档有4个字段: id(字符串、索引、存储) 标题(solr.TextField,索引,未存储) 关键词(solr.TextField、多值、索引、未存储) 内容(solr.TextField,索引,未存储) 我正在使用update/json在一个紧密的循环中以100个批插入文档(为每个批向update/json端点发出新的HTTP请求)。如
- id(字符串、索引、存储)
- 标题(solr.TextField,索引,未存储)
- 关键词(solr.TextField、多值、索引、未存储)
- 内容(solr.TextField,索引,未存储)
update/json
在一个紧密的循环中以100个批插入文档(为每个批向update/json
端点发出新的HTTP请求)。如果我在每个请求之间添加100毫秒的延迟,问题会变得更好。如果我延迟整整一秒钟,它就会完全消失,但这显然是令人无法接受的缓慢
我通过为HTTP请求添加非常短的超时(1秒)并实现一些重试逻辑来解决这个问题。这是可行的,但当然,当它重试时,我总是会遇到恼人的延迟
我的进程经常挂起,等待solr在进程中的某个时刻做出响应。例如,如果我从一个新的内核开始,并立即对其进行测试,以下是我每次运行的结果:
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>
${solr.ulog.dir:}
${solr.autoCommit.maxTime:15000}
假的
${solr.autoSoftCommit.maxTime:-1}
您没有描述实际的“挂起”。它是挂一段时间还是永远?这就大不相同了
我假设您的实际文档(内容字段?)相当大
可能有两件事:
我在关于挂起和提交设置的问题中添加了一个更新(我想…),我会在服务器上查找日志,看看我能在那里破译什么。现在,我通过为HTTP请求设置一个非常低的超时(1秒)并在超时时重试,使其工作“正常”。这是缓慢的,但它的工作。