Solr6大约有50多个多包。
从使用者的角度来看,最先看到的应当是servlet。由于Solr本身是一个独立的网络应用程序,需要在Servlet容器中运行来提供服务,因此servlet是用户接触的最外层。
对于一般的servlet来说,都是继承自 HttpServlet类,默认有4个方法:
init()
destory()
doGet()
doPost()
分析SolrServlet 类。首先 servlet 会调用 init()方法进行初始化:通过 Context 查找
java:comp/env/solr/home 来确定Solr 的主目录(home),接着调用
Config.setInstanceDir(home)方法设置这个实例的目录。然后通过SolrCore.getSolrCore()来获得一个SolrCore实例。destroy()方法将会在
Servlet 对象销毁时调用,仅仅调用 core.close()关闭 SolrCore 实例。
当用户请求进来时 doPost()简单地将任务交给 doGet()完成,主要的任务由 doGet()完成。分析一下 doGet()方法:
1) 使用 SolrCore 和 doGet()参数 request 生成一个 SolrServletRequest 对象(注意:这个 SolrServletRequest 类
不是公开类,位于 org.apache.solr.servlet 包中,继承了 SolrQueryRequestBase 类,仅仅接受 SolrCore 和
HttpServletRequest 对象作为参数。
2) 然后 SolrCore 执行 execute()方法(参数为 SolrServletRequest 和 SolrQueryResponse)。由此可见,真正的处理核心是 SolrCore 的 execute 方法。
发布时间:2011-02-17
发布时间:2011-01-19
发布时间:2010-12-30
发布时间:2016-10-11
发布时间:2011-01-10
发布时间:2011-03-02
发布时间:2016-06-06
发布时间:2011-03-01
发布时间:2011-03-16
发布时间:2011-02-15
发布时间:2011-01-23
发布时间:2011-03-09