Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的solrj连接_Java_Solr_Jetty_Solrj - Fatal编程技术网

java中的solrj连接

java中的solrj连接,java,solr,jetty,solrj,Java,Solr,Jetty,Solrj,嗨,我正在为solrj开发几个示例程序,我很难确定我是否正确连接了它。这是我的代码 import org.apache.solr.client.solrj.SolrServer; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.HttpSolrServer; import org.apache.solr.client.solrj.response.Q

嗨,我正在为solrj开发几个示例程序,我很难确定我是否正确连接了它。这是我的代码

import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.params.ModifiableSolrParams;

import java.net.MalformedURLException;

public class SolrExample {
  public static void main(String[] args) throws MalformedURLException,    SolrServerException {
//SolrServer solr = new CommonsHttpSolrServer("localhost:8983/solr");
SolrServer server = new HttpSolrServer("localhost:8983/solr/");


ModifiableSolrParams params = new ModifiableSolrParams();
params.set("qt", "/spellCheckCompRH");
params.set("q", "epod");
params.set("spellcheck", "on");
params.set("spellcheck.build", "true");

QueryResponse response = server.query(params);
System.out.println("response = " + response);
  }
}
上述代码的输出为: {time=219.0,sub1={time=125.0,sub1.1={time=0.0}}

另一方面,如果我使用这个:

     SolrServer solr = new CommonsHttpSolrServer("localhost:8983/solr");
据说那是失礼的

我很困惑,因为我可以通过本地主机访问我计算机中的solr admin,但我不能在我的程序中访问


非常感谢如果有人能提供帮助

您不应该在URL上指定协议吗:

SolrServer solr=newcommonHttpSolrserver(“http://localhost:8983/solr");


我做了一个简单的测试,如果我不这样做,我会得到一个错误。然而,我在我的项目中使用Solr3.4。。。我没有收到“弃用”警告,根据文档,确实建议在solr()的更高版本中使用“HttpSolrServer”。

您不应该在URL上指定协议吗:

SolrServer solr=newcommonHttpSolrserver(“http://localhost:8983/solr");

我做了一个简单的测试,如果我不这样做,我会得到一个错误。然而,我在我的项目中使用Solr3.4。。。我没有收到“弃用”警告,根据文档,确实建议在solr()的更高版本中使用“HttpSolrServer”。

  • 对于Solrj 4.x,您必须使用HttpSolrServer:
    SolrServer SolrServer=新的HttpSolrServer(“”)
    或“

  • 另外,对于Solr Cloud,您可以使用CloudSolrServer,参数为ApacheZooKeeper的url:
    SolrServer cloudSolrServer=新的cloudSolrServer(“htt p://localhost:2181”)

查看Apache Solr wiki页面了解更多信息:

  • 对于Solrj 4.x,您必须使用HttpSolrServer:
    SolrServer SolrServer=新的HttpSolrServer(“”)
    或“

  • 另外,对于Solr Cloud,您可以使用CloudSolrServer,参数为ApacheZooKeeper的url:
    SolrServer cloudSolrServer=新的cloudSolrServer(“htt p://localhost:2181”)


查看Apache Solr wiki页面了解更多信息:

我编辑了示例程序并使用了您声明的url:SolrServer Solr=new commonHttpSolrServer(“);但我仍然收到了不推荐的警告。我使用Solr 3.6.0,也尝试了Solr 4.2.1。我将尝试Solr 3.4。谢谢您需要指定“HTTP://,我在您的代码段中没有看到它。在Solr 3.4中,CommonHttpSolrServer并没有被弃用,但是如果您开始使用Solr,您应该使用更新的版本,并按照文档中的建议使用HttpSolrServer。我编辑了示例程序并使用了您声明的url:SolrServer Solr=new CommonHttpSolrServer(“);但我仍然收到了不推荐的警告。我正在使用solr 3.6.0,还尝试了solr 4.2.1。我将尝试solr 3.4。谢谢您需要指定“HTTP://,我在您的代码段中没有看到它。在Solr 3.4中,CommonHttpSolrServer并没有被弃用,但是如果您开始使用Solr,您应该使用更新的版本,并按照文档中的建议使用HttpSolrServer。