我希望我的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。
提前致谢!
答案 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