我想以编程方式从Java内部访问solr,而不是将其用作传递http请求的单独服务。有没有一种方法可以直接从Java启动并访问它,而不是将其用作独立服务?

如果无法做到这一点,我希望有一种方法将solr与我的应用程序打包在一起,以便最终用户不必事先在其系统上安装solr。我试图让我的应用程序使用solr,但不必单独安装它,但是这是可能的。

由于某种原因,我感到我的整个问题在这里被误导了,这对我来说是新的领域,谢谢!任何方向将不胜感激。

最佳答案

Solr建议使用HTTP接口,因为它是使用它的最佳支持方法。

但是,如果您想做自己想做的事情,就称为嵌入,并且可以通过使用Solrj EmbeddedSolrServer 客户端库一起使用,这将允许您在代码中运行嵌入式Solr实例。

显示嵌入式服务器用法的代码段是also on the Solrj page:

// Note that the following property could be set through JVM level arguments too
  System.setProperty("solr.solr.home", "/path-to-solr");
  CoreContainer.Initializer initializer = new CoreContainer.Initializer();
  CoreContainer coreContainer = initializer.initialize();
  EmbeddedSolrServer server = new EmbeddedSolrServer(coreContainer, "");

10-07 20:44