用Java开发Solr 实际应用教程
Solr是一个全文检索服务器,只需要进行配置就可以实现全文检索服务。
Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引 。Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。
solr教程:需要你了解Java、Linux、Tomcat等知识。
目前市面上对于solr的教程特别少、我希望给我们没有条件的编程学者整理solr知识点、一起学习、一起奋斗。
而且大学不会教solr、我也是自学的。一般像这种高级的东西只有培训机构可能会教了。
一、前提工作
1、下载
从Solr官方网站(http://lucene.apache.org/solr/ )下载Solr4.10.3,根据Solr的运行环境,Linux下需要下载lucene-4.10.3.tgz,windows下需要下载lucene-4.10.3.zip。
Solr使用指南可参考:https://wiki.apache.org/solr/FrontPage。
2、Solr的安装及配置
需要把solr服务器安装到linux环境:第一步:安装linux、jdk、tomcat。
创建新的solr目录:
[[email protected] ~]# mkdir /usr/local/solr
[[email protected] ~]# cp apache-tomcat-7.0.47 /usr/local/solr/tomcat
[[email protected] ~]# cp apache-tomcat-7.0.47 /usr/local/solr/tomcat -r
第三步:把/root/solr-4.10.3/dist/solr-4.10.3.war包部署到tomcat下。并改名为solr.war(可以不改)
[[email protected] dist]# cp solr-4.10.3.war /usr/local/solr/tomcat/webapps/solr.war
第五步:把/root/solr-4.10.3/example/lib/ext 目录下所有的jar包复制到solr工程中。
[[email protected] ext]# cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/
[[email protected] example]# cp -r solr /usr/local/solr/solrhome
需要修改solr工程的web.xml文件。
第八步:启动服务器(如下图2-1)
二、Java来开发solr
1、先打开solr后台管理页面(图2-1)
2、Java实现solr增删改差
在项目中添加依赖、或者架包、因为我用的是maven
<!-- solrj客户端 -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
</dependency>
3、实现类
3.1添加
//http://192.168.29.132:8080/solr/ 这个一定要有 / ,不然会报IO异常
private static final String SOLR_URL = "http://192.168.29.132:8080/solr/";
/**添加、修改直接添加新的就好、但是id要一样才能修改、不然就是添加*/
@Test
public void addDocument() throws Exception {
//创建一连
SolrServer solrServer = new HttpSolrServer(SOLR_URL);
//创建一个文档对象
SolrInputDocument document = new SolrInputDocument();
document.addField("id", "001");
document.addField("item_title", "测试001");
document.addField("item_price", 6666);
//把文档对象写入索引库
try {
solrServer.add(document);
}catch (Exception e){
e.printStackTrace();
}
//提交
solrServer.commit();
}
结果图、删除看代码里面的注释说明
3.2删除
/**删除、*/
@Test
public void deleteDocument() throws Exception {
//创建一连接
SolrServer solrServer = new HttpSolrServer(SOLR_URL);
solrServer.deleteById("001");
solrServer.commit();
}
结果图
3.4、查询
/**查询*/
@Test
public void queryDocument() throws Exception {
SolrServer solrServer = new HttpSolrServer(SOLR_URL);
//创建一个查询对象
SolrQuery query = new SolrQuery();
//设置查询条件
query.setQuery("*:*");
//分页开始
query.setStart(20);
//分页结束
query.setRows(50);
//执行查询
QueryResponse response = solrServer.query(query);
//取查询结果
SolrDocumentList solrDocumentList = response.getResults();
System.out.println("共查询到记录:" + solrDocumentList.getNumFound());
for (SolrDocument solrDocument : solrDocumentList) {
System.out.println(solrDocument.get("id"));
System.out.println(solrDocument.get("item_title"));
System.out.println(solrDocument.get("item_price"));
System.out.println(solrDocument.get("item_image"));
}
}
书籍下载:solr安装与配置(http://download.****.net/detail/javawebrookie/9717355)