如何解决部分更新原子索引SolrJ - 慢
我有一个 Solr 数据库,其中包含大约 250,000 条记录,其中包含大约 8 个字段。 我正在尝试向索引添加一个新字段,该字段有一个可搜索的小说明。
以下是 Solr 中的字段。
以下是用于检查值是否不同以执行更新的 Java 代码。 它基本上循环遍历我的 sql 数据库中的 250,000 条记录,并对 Solr 执行差异检查。如果只有几条记录需要更新,此代码通常会在 5 分钟左右运行。
有 5500 种产品具有新的描述值,添加新字段值需要花费数小时,到目前为止只完成了 1000 种。我的印象是原子更新会添加到数据库中并在稍后编入索引。感觉就像它试图从源头索引每个新描述,也许这就是它减慢速度的原因?
if (solrsearchDoc.getFieldValue("Prod_ShortDescription") != null){
if(!solrsearchDoc.getFieldValue("Prod_ShortDescription").equals(doc.getItemValueString("Prod_ShortDescription").trim())){
UpdateSolrRecord = true;
fieldModifier.put("set",doc.getItemValueString("Prod_ShortDescription").trim());
sdoc.addField("Prod_ShortDescription",fieldModifier);
updatedField = "Prod_ShortDescription";
}
}else{
UpdateSolrRecord = true;
fieldModifier.put("set",fieldModifier);
updatedField = "Prod_ShortDescription";
}
if(UpdateSolrRecord == true){
sdoc.addField("id",doc.getItemValueString("ID"));
solrUpdateDocs.add(sdoc);
if ((x % 100) == 0) {
solrserver.add(solrUpdateDocs);
solrserver.commit();
solrUpdateDocs.clear();
}
}
我想知道是否有人可以为我指出正确的方向、解释过程或提供一些最佳实践,以确保在向 Solr 添加新值时性能不会停滞不前。有没有更好的批量更新方法,还是我遗漏了什么?
值得指出的是,我在控制台上遇到了很多这样的错误。
org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException:来自服务器 http://127.0.0.1:8983/solr/prod_core 的错误:建议程序未构建 03/06/2021 10:19:44 HTTP JVM:在 org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:665) 03/06/2021 10:19:44 HTTP JVM:在 org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:265) 03/06/2021 10:19:44 HTTP JVM:在 org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:248)
非常感谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。