通过前面的介绍,我们已经能够看到管理员界面并对Solr形成了一个感性的认识。本篇将在物理上深入了解Solr的安装目录结构和Solr示例的主目录结构。
安装目录结构
Solr 6.3.0安装文件夹里面包含很多内容。这里挑选一些重要的目录进行说明。目录结构如下:
- bin:大量的Solr控制台管理工具存在该目录下。例如前面提到的solr\solr.cmd\post等。
- contrib:该文件包含大量关于Solr的扩展。分别如下:
- analysis-extras:该目录下面包含一些相互依赖的文本分析组件。
- clustering:该目录下有一个用于集群检索结果的引擎。
- dataimporthandler:DIH是Solr中一个重要的组件,该组件可以从数据库或者其他数据源导入数据到Solr中。
- dataimporthandler-extras:这里面包含了对DIH的扩展。
- extraction:集成Apache Tika,用于从普通格式文件中提取文本。
- langid:该组件使得Solr拥有在建索引之前识别和检测文档语言的能力。
- map-reduce:提供一些和Hadoop Map-Reduce协同工作的工具。
- morphlines-cell:为Solr Cell类型的功能提供Kite Morphlines的特性。
- morphlines-core:为Solr提供Kite Morphlines的特性。
- uima:该目录包含用于集成Apache UIMA的库。
- velocity:包含一个基于Velocity模板语言简单检索UI框架。
- dist:在这里能找到Solr的核心JAR包和扩展JAR包。当我们试图把Solr嵌入到某个应用程序的时候会用到核心JAR包。
- solrj-lib:包含构建基于Solr的客户端时会用到的JAR包。
- test-framework:包含测试Solr时候会用到的JAR包。
- docs:该文件夹里面存放的是Solr文档,离线的静态HTML文件,还有API的描述。但是个人觉得不是太有用,使用Solr Reference Guide更好。
- example:包含Solr的简单示例。在其中的exampledocs子文件夹下存放着前面提到过的用于在Windows环境下发送文档到Solr的工具post.jar程序。
- licenses:各种许可和协议。
- server:在本地把Solr作为服务运行的必要文件都存放在这里。
- contexts:启动Solr的Jetty网页的上下文配置。
- etc:Jetty服务器配置文件,在这里可以把默认的8983端口改成其他的。
- lib:Jetty服务器程序对应的可执行JAR包和响应的依赖包。
- logs:默认情况下,日志将被输出到这个文件夹。
- modules:http\https\server\ssl等配置模块。
- resources:存放着Log4j的配置文件。这里可以改变输出日志的级别和位置等设置。
- scripts:Solr运行的必要脚本。
- solr:运行Solr的配置文件都保存在这里。solr.xml文件,提供全方位的配置;zoo.cfg文件,使用SolrCloud的时候有用。子文件夹/configsets存放着Solr的示例配置文件。
- solr-webapp:前面已经提到过的管理界面的站点就存放在这里。
- tmp:存放临时文件。
主目录结构
前面提到过,如果启动的Solr实例不是示例中的一个,那么我们需要创建Core,这样才能顺利的完成索引的创建和查询过程。每创建一个Core,都会产生一个对应的文件夹,这个文件夹就是这里要提到的主目录,也是将来使用Solr的过程中会经常操作到的一类目录。需要说明的是,在“独立模式”和“云模式”下,主目录的结构是有些许差异的。
独立模式下:
<solr-home-directory>/
solr.xml
core_name1/
core.properties
conf/
solrconfig.xml
managed-schema
data/
core_name2/
core.properties
conf/
solrconfig.xml
managed-schema
data/
云模式下:
<solr-home-directory>/
solr.xml
core_name1/
core.properties
data/
core_name2/
core.properties
data/
其中,有些文件是非常重要的:
- solr.xml 为Solr服务器实例指定配置选项。具体如何配置,后面会专门讲解。
- 在每一个Core里面:
- core.properties为每一个Core指定了诸如名称,所属集合,schema的位置等等属性。
- conf/solrconfig.xml控制高级行为。比如,你可以在该文件中指定数据目录的替代位置。
- conf/managed-schema存放文档的描述。第三篇的创建Core小节提到过的数据驱动的Schema,就是在这里得到展现的,根据添加的不同的带索引文件,managed-schema文件的内容会依据推导出的类型动态的调整。Schema定义一个字段集合的文档。在这里既定义字段类型,又定义字段本身。字段类型定义非常的强大甚至还包含了Solr是如何处理进入字段的值和查询值得描述的。
- data/该目录包含基础的索引文件。