servlet 使用 solrj 连接到 solr

servlet connect to solr using 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));
}
}

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

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

提前致谢!

异常是说你的运行时class路径是错误的。

假设您 运行 这个 class 在 servlet 容器中,很可能您缺少的不是 Java EE jar,而是与 SolrJ 有关.

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

无论如何,一旦您确定了这些库,就必须将它们放在您的 webappWEB-INF/lib 下

有关依赖项列表,您可以在此处阅读:http://mvnrepository.com/artifact/org.apache.solr/solr-solrj/4.10.3