为什么要使用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不会查询到刚才提交的数据