04 Apache Solr: 目录结构

通过前面的介绍,我们已经能够看到管理员界面并对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的过程中会经常操作到的一类目录。需要说明的是,在“独立模式”和“云模式”下,主目录的结构是有些许差异的。

独立模式下:

 1 <solr-home-directory>/
 2    solr.xml
 3    core_name1/
 4       core.properties
 5       conf/
 6          solrconfig.xml
 7          managed-schema
 8       data/
 9    core_name2/
10       core.properties
11       conf/
12          solrconfig.xml
13          managed-schema
14       data/

云模式下:

1 <solr-home-directory>/
2    solr.xml
3    core_name1/
4       core.properties
5       data/
6    core_name2/
7       core.properties
8       data/

其中,有些文件是非常重要的:

  • solr.xml 为Solr服务器实例指定配置选项。具体如何配置,后面会专门讲解。
  • 在每一个Core里面:
    • core.properties为每一个Core指定了诸如名称,所属集合,schema的位置等等属性。
    • conf/solrconfig.xml控制高级行为。比如,你可以在该文件中指定数据目录的替代位置。
    • conf/managed-schema存放文档的描述。第三篇的创建Core小节提到过的数据驱动的Schema,就是在这里得到展现的,根据添加的不同的带索引文件,managed-schema文件的内容会依据推导出的类型动态的调整。Schema定义一个字段集合的文档。在这里既定义字段类型,又定义字段本身。字段类型定义非常的强大甚至还包含了Solr是如何处理进入字段的值和查询值得描述的。
    • data/该目录包含基础的索引文件。