论坛首页 综合技术论坛

solr server不更新EmbeddedSolrServer提交的数据?

浏览 2778 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-10-11   最后修改:2010-10-11
如题,使用EmbeddedSolrServer提交的数据,在solr server查询不出来,只有重启solr server之后才能查询到。查询互联网无果之后,我忽然想到使用CommonsHttpSolrServer来commit()一下,结果大快人心,问题解决。
为什么要使用EmbeddedSolrServer呢?据某些资料介绍,如果solr server和client在同一台机器上,使用EmbeddedSolrServer(直接通过lucene写磁盘)比使用CommonsHttpSolrServer(http访问)要快50%。

下面以简单的代码说明这个问题。
首先是EmbeddedSolrServer的初始化,和wiki的一样,很简单:
System.setProperty("solr.solr.home", "");
CoreContainer.Initializer initializer = new CoreContainer.Initializer();
CoreContainer coreContainer = initializer.initialize();
EmbeddedSolrServer server = new EmbeddedSolrServer(coreContainer, "");

CommonsHttpSolrServer的初始化也和wiki的一样。
提交代码:
embeddedSolrServer.add(docList);
embeddedSolrServer.commit();
commonsHttpSolrServer.commit();// 如果没有http的commit,solr server不会查询到刚才提交的数据
   发表时间:2010-12-15  
能说的详细点不?
0 请登录后投票
   发表时间:2010-12-15   最后修改:2010-12-15
embeddedSolrServer.commit()的同时,再使用一下commonsHttpSolrServer.commit()
如果你遇到了这个问题,看到这里应该能理解了吧?
0 请登录后投票
   发表时间:2011-03-14  
为啥要提交两次呢?
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics