我有四个节点solrcloud安装版本4.10和我的集合有4个分片,2个副本.我的应用程序提供实时数据摄取的搜索功能,数据摄取和搜索过程并行运行.
每天数据加载大约2~3MM记录(插入/更新操作),总文件数为80MM +.
我们面临的问题是solr在数据摄取的高峰时间内返回非常不一致的记录计数.
示例查询:
for i in `seq 1 50`;
do
curl 'http://localhost:8888/solr/OPTUM/select?q=*:*&wt=json&indent=true'|grep numFound|rev|cut -d'{' -f1 |rev
done
Run Code Online (Sandbox Code Playgroud)
响应numfound变量显示有时非常少的文档计数然后实际存在于solr中.
请建议我是否需要进行任何配置更改以获得一致的计数.
我还没有找到这个问题的根本原因,但我暂时做了一些解决办法来解决这个错误。
我一直在使用 solrj4.x softcommit 方法(UpdateRequest.setCommitWithin( commitWithinMs )),我对此进行了评论并在 solr 端使用了所有提交策略。
<autoCommit>
<maxTime>15000</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
<autoSoftCommit>
<maxTime>2000</maxTime>
</autoSoftCommit>
Run Code Online (Sandbox Code Playgroud)
我从 solr 获得一致的结果,但仍然不确定为什么 solrj 客户端提交不起作用。
| 归档时间: |
|
| 查看次数: |
1176 次 |
| 最近记录: |