Solr4.0 jetty安装 & 调试跟踪查询请求处理流程

2019-03-27 01:06|来源: 网路

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处理流程;

主要执行流程如下:

 

 

 


转自:http://www.cnblogs.com/majorgg/archive/2012/11/22/2761632

相关问答

更多
  • 1. commit 有返回值的 UpdateResponse updateResponse = solrServer.commit();int status = updateResponse.getStatus()这里的 status 可以拿到操作执行的状态 ,0表示 成功 if (status != 0) { log.error("Some horrible error has occurred, status is:" + status); } 2. try{ UpdateResponse addBea ...
  • 看起来像打包器(Bitnami)没有包含该库,即使他们让Solr配置为使用该库。 你可以要求他们解决它。 或者您可以自己部署它。 以下是在Tomcat上部署Solr的方法。 它同样易于在Windows上安装; 它从Windows服务开始。 安装后,要启用富文档支持,请将contrib/extraction/lib/的内容复制到目录,并将sharedLib中的solr.xml指向该目录。 如果您使用过该指南,您将理解这些新术语:-) Looks like the packager (Bitnami) did ...
  • 在典型的POST请求中,您将看到以下内容...... POST /to/my/path HTTP/1.1 Content-Type: application/x-www-form-urlencoded;charset=utf-8 Host: https://my.machine.com Content-Length: 10 Action=Add 打破这一点: 通过Content-Length行的POST是请求头。 POST行以HTTP术语称为Request-Line ,它包含方法(POST)+ abs_ ...
  • 使用Jetty 9.0.6时,您需要传入部分服务调用${jetty.home}/start.jar extra --daemon命令行变量并查找start.log文件。 (这些文件通常位于${jetty.logs}/start.log位置。 除此之外,还包括-DDEBUG=true以启用调试启动过程,以及启用Jetty本身的调试(直到实际的记录器启动)。 最后,如果您希望默认的Jetty StdErrLog也以调试级别登录,请将-Dorg.eclipse.jetty.LEVEL=DEBUG添加到命令行。 把 ...
  • 我们可以使用GzipFilter并实现这个结果。 GzipFilter的 Jetty文档提供了大量细节支持的参数列表。 要以编程方式启用它, 请参阅此问题 。 GzipFilter基本上是一个服务器端过滤器,在处理压缩需求方面非常高效。 示例过滤器配置 GZipFilter Jetty's GZip Filter Filter that zips ...
  • 这已经解决了。 我还要做两件事:1。让Jetty使用特殊的IP 0.0.0.0让它在所有接口上监听:
  • 线索是将solr示例目录示例/ lib / ext中的lib集成到solr.war中。 从solr.war中提取文件。 然后将libs放入WEB-INF / lib文件夹中。 创建一个包含libs的新solr.war。 The clue is to integrate the libs from the solr example directory example/lib/ext into the solr.war. Extract the files from the solr.war. Then put ...
  • 找到答案: 阅读更多文档 :页 由于langid被配置为更新请求处理器链,因此它需要被选中(它不是自动的)。 所以,这工作: curl "http://localhost:8983/solr/update/extract?literal.id=test&commit=true&update.chain=langid" -F "myfile=@test.xml" Found the answer: read more docs :p Since langid is configured as an upda ...
  • 除了新功能之外,Solr 3.6和Solr 4.0之间是否有任何重大差异? 我发现这个问题很奇怪,至少可以说。 错误修复和新功能是发布的全部内容! 您可以在此处查看 Solr版本的完整更新日志。 不要忘记Solr和Lucene是一致发布的,所以你还需要在两个项目中寻找相关的变化。 我可以安全地使用我在Solr 4.0中的现有查询(在Solr 3.6中工作的查询)吗? 查询应该没问题,但索引 - 可能不是。 引用另一篇SO帖子中的 javanna: 索引格式已更改,但Solr将负责升级索引。 一旦用旧索引启动 ...
  • SOLR-1967问题已有近2年的历史,您使用的罐子并不适用于Solr 4.x. 实际上, QueryResponseWriter接口已移至org.apache.solr.response包。 你有两个选择: 试图让它与Solr 3.x一起工作(不确定它是否可以开箱即用3.5) 尝试在Solr主干中集成附加到补丁的源代码,以适应和修复您找到的错误 The SOLR-1967 issue is almost 2 years old and the jar you're using is not meant t ...