servlet使用solrj连接到solr

时间:2015-04-10 02:36:06

标签: solrj

我希望我的servlet与solr建立连接以执行查询。使用eclipse我为用户创建了一个简单的JSP文件来输入他们的查询,然后它将从servlet调用doGet()方法。从servlet我尝试使用solrj连接solr

我的solrj代码如下。

HttpSolrServer solr = new HttpSolrServer("http://localhost:8983/solr");

SolrQuery query = new SolrQuery();
query.setQuery("sony digital camera");
query.addFilterQuery("cat:electronics","store:amazon.com");
query.setFields("id","price","merchant","cat","store");
query.setStart(0);    
query.set("defType", "edismax");

QueryResponse response = solr.query(query);
SolrDocumentList results = response.getResults();
for (int i = 0; i < results.size(); ++i) {
  System.out.println(results.get(i));
}
}

它基本上只是简单的在线代码,没有语法错误,这意味着程序检测到库文件。但是在运行时,程序返回classNotFoundException错误。

这提醒我是否可以在servlet上实现solrj。任何人都可以告诉我在哪里可以使用solrj代码?我认为代码是正确的,但只是我错误地实现了solrj。

提前致谢!

1 个答案:

答案 0 :(得分:1)

异常是说您的运行时类路径错误。

假设您在servlet容器中运行此类,很可能您所缺少的不是Java EE jar,而是与SolrJ有关。

Solrj几乎没有依赖关系:你可以在Solr发行版中找到它们,或者如果你对Apache Maven有信心,你可以用它来个性化这些jar。

在任何情况下,一旦您确定了这些库,您必须将它们放在您的webapp的WEB-INF / lib下

有关依赖项列表,请参阅此处:http://mvnrepository.com/artifact/org.apache.solr/solr-solrj/4.10.3