Solr使用jetty作为内置的服务器端servlet容器,配置文件在webapp/web/WEB-INF中web.xml,其中:
Filter指定jetty启动后加载的类为SolrDispatchFilter,因此我们的初始化和浏览器下发的命令都将传递到该类中。其中加载solrhome中的configs和cores的入口为init(FilerConfig)方法:
类中的this.cores = createCoreContainer(solrHome == null ? SolrResourceLoader.locateSolrHome() : Paths.get(solrHome),extraProperties);负责加载solrhome其中的core。
当服务器获得到请求时,public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain, boolean retry)方法负责解析请求并生成结果。