一.启动机制
Solr作为一个Java Web应用默认运行在Jetty上,使用全局Java属性【solr.solr.home】来定位配置文件的根目录。在启动时,Solr会扫描主目录下包含core.properties文件的子文件夹。该文件定义了Solr中自动发现内核的基本属性。例如:
此外,该配置文件还可以设置一系列可选参数对内核的定义做出适当的调整,具体如下:
Solr可以在启动期间利用core.properties文件自动发现内核。一旦内核被发现,Solr就能定位该内核的solrconfig.xml配置文件。Solr利用solrconfig.xml文件来初始化内核。
二.配置管理
1.solrconfig.xml配置文件概述
三.常见类型
在solrconfig.xml文件中,存在各种用于表示数据结构和数据类型的XML元素,具体如下:
备注:arr和lst之间的最大不同是lst中的每个元素都有一个name属性,而arr的子元素则没有。
四.JMX
jmx用于激活Solr的MBeans,允许系统管理员使用一些类似Nagios的常用系统监控工具监控和管理核心Solr组件。简言之,MBean是一个Java对象,它可以调用JAVA管理扩展JMX的API获得Solr的配置参数和统计信息。MBeans可以被Solr自动发现并被JMX兼容工具监控。这样可以将对Solr监控集成到已有的系统监控机制中。
五.请求管理
对Solr发起请求需要通过HTTP。如果是查询请求,则为HTTP GET方法。如果是索引请求,则为HTTP POST方法。一个GET请求及相关介绍例子如下:
请求执行流程如下:
执行流程步骤:
1.客户端应用将HTTP GET请求发送至http://localhost:8983/solr/collection1/select?q=...,查询参数通过该GET请求中的查询字符串进行传递。
2.Jetty接收客户端请求,并根据请求路径中/solr后的内容将该请求交给Solr中的统一请求分配器。从技术上讲,统一请求分配器就是一个Java servlet过滤器,可以为Solr Web应用过滤出符合/*的URL。
3.Solr的请求分配器根据客户端请求路径中的collection1确定所查询的内核名称。接下来,请求分配器会定位到solrconfig.xml文件中定义的/select请求处理器。
4./select请求处理器利用一系列搜索组件处理客户端请求。
5.在处理完客户端请求之后,查询结果经由响应读写器组件进行格式化之后,返回给客户端应用。默认情况下,/select请求处理器返回的结果数据为XML格式。
请求分配器的主要职能是根据用户请求语句定位达处理该请求的内核,如上面的collection1,然后将用户请求交给内核中已注册的对应请求处理器,如上面的/select。