最近做solr的拼音搜索功能,需要学习solr的源代码,在此记录学习过程,以备将来回顾。
一:源代码下载
地址在http://archive.apache.org/dist/lucene/solr/3.4.0/,找到src压缩包下载,大小是100M
二:开发环境搭建
参考:http://www.zwsun.com/solr_in_eclipse_2012_06_10_post,感谢作者的无私分享
本项目采用eclipse做为开发ide,操作系统采用windows xp,搭建可运行的开发环境如下:
- 安装ant编译环境
- 解压源码包,进入根目录
- 在根目录执行ant eclipse,生成eclipse需要的项目文件
- 导入项目到eclipse,选择File > Import > Existing Projects into Workspace,导入目录选取解压后根目录
- 展开项目,找到solr/solrj/src/test,其下有org.apache.solr.client.solrj包,找到StartSolrJetty.java文件
- 修改main函数,修改两个地方
- 一是connector.setPort(8080);端口指定为你自己所需,和tomcat不冲突就行了
- 二是bb.setContextPath("/");和bb.setWar("src/webapp/web");,修改为bb.setContextPath("/solr");以及bb.setWar("solr/webapp/web");
- 以下是我的示例代码
Server server = new Server(); SocketConnector connector = new SocketConnector(); // Set some timeout options to make debugging easier. connector.setMaxIdleTime(1000 * 60 * 60); connector.setSoLingerTime(-1); //connector.setPort(8080); connector.setPort(8983); server.setConnectors(new Connector[] { connector }); WebAppContext bb = new WebAppContext(); bb.setServer(server); //bb.setContextPath("/"); //bb.setWar("src/webapp/web"); bb.setContextPath("/solr"); bb.setWar("solr/webapp/web");
- 在run configure中Arguments > VM arguments中写入-Dsolr.solr.home=solr/example/solr,点击run即可