部分更新(原子索引)solrj-缓慢

zazmityj  于 2021-10-10  发布在  Java
关注(0)|答案(0)|浏览(264)

我有一个solr db,有大约250000条记录,其中包含大约8个字段。我正在尝试向索引添加一个新字段,该字段具有可搜索的小说明。
下面是solr中的字段。

下面是用于检查值是否不同以执行更新的java代码。它基本上在我的sql数据库中循环250000条记录,并对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",doc.getItemValueString("Prod_ShortDescription").trim());
                          sdoc.addField("Prod_ShortDescription", 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: suggester不是在org.apache.solr.client.solrj.impl.httpsolrclient.executemethod(httpsolrclient.java:665)于2021年6月3日10:19:44 http jvm:at构建的org.apache.solr.client.solrj.impl.httpsolrclient.request(httpsolrclient.java:265)03/06/2021 10:19:44 http jvm:at org.apache.solr.client.solrj.impl.httpsolrclient.request(httpsolrclient.java:248)
非常感谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题