1.下载安装启动solr
solr官网下载solr4.0安装包apache-solr-4.0.0.tgz和solr4.0源码apache-solr-4.0.0-src.tgz;
下载jetty-distribution-8.1.7.v20120910.zip,作为solr运行容器;
解压solr、jetty;
cd jetty-distribution-8.1.7.v20120910
vi etc/jetty.xml ,修改jetty.port端口;
java -Dsolr.solr.home=/home/jiawa.mj/solr/apache-solr-4.0.0/example/solr -jar start.jar & 启动jetty; solr.solr.home指定solr目录; 浏览器输入:http://10.232.11.86:8282/solr/#/添加数据值solr:
cd apache-solr-4.0.0/example/exampledocs
vi post.sh 修改URL=http://localhost:8282/solr/update
sh post.sh *.xml
浏览器输入:http://10.232.11.86:8282/solr/select?indent=on&q=*:*
2.解压源码生成eclipse工程
下载apache-ant-1.8.4-bin.zip,解压,添加系统环境变量(solr官方使用ant编译打包)
如:ANT_HOME:C:\apache-ant-1.8.4 PATH:%ANT_HOME%\bin
ant -v 查看是否安装成功;
解压solr源码包:
cd apache-solr-4.0.0
ant -p #查看targets
ant ivy-bootstrap
ant eclipse #生成eclipse工程
使用eclipse导入工程
3.远程调试solr设置
启动jetty参数中添加:-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 打开远程调试端口 停止jetty,重新启动:java -Dsolr.solr.home=/home/jiawa.mj/solr/apache-solr-4.0.0/example/solr -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 -jar start.jar & eclipse中Debug Configuration配置远程调试,指定ip、port于org.apache.solr.servlet.SolrDispatchFilter的doFilter函数添加断点
Debug
浏览器输入查询:http://10.232.11.86:8282/solr/select?q=*:*
执行进入到eclipse工程代码中
4.本地调试solr
修改org.apache.solr.client.solrj.StartSolrJetty,
System.setProperty("solr.solr.home", "solr/example/solr");
bb.setWar("solr/webapp/web");
debug
浏览器输入查询:http://127.0.0.1:8983/solr/select?q=*:*
执行进入到eclipse工程代码中
4.跟踪查询请求处理流程
solr/webapp/web/WEB-INF/web.xml ->
<filter-mapping> <filter-name>SolrRequestFilter</filter-name> <url-pattern>/*</url-pattern></filter-mapping>
<filter> <filter-name>SolrRequestFilter</filter-name> <filter-class>org.apache.solr.servlet.SolrDispatchFilter</filter-class></filter>
于org.apache.solr.servlet.SolrDispatchFilter类的doFilter方法添加断点,跟踪solr处理流程;
主要执行流程如下:
转载于:https://www.cnblogs.com/majorgg/archive/2012/11/22/2761632.html
