1. 整个目录结构
(1)bin:是脚本的启动目录
(2)contrib:第三方包存放的目录
(3)dist:编译打包后存放目录,即构建后的输出产物存放的目录
(4)docs:solr 文档的存放目录
(5)example:示范例子的存放目录和 solr 搜索引擎框架
(6)licenses:权限相关的
2.example 目录详解
contexts:jetty 的环境
etc:jetty 的配置文件
example-DIH:示范例子的存放目录,这里展示了 DIH,即数据导入处理的例子
lib:jetty 服务器的 jar 包
multicore:core 示例配置文件
resources:资源文件
scripts:脚本文件
solr:solr 服务器的配置文件,solr 基于 jetty 服务器开发的
webapps:solr 的 web 工程
start.jar:启动 jar 包。通过 Java 命令就可以启动一个基于 jetty 服务器的 web 工程
3. 认识概念 "core"
打个比方,solr 就像是个操作系统,安装在操作系统中的软件就是 "core",每个 core 有自身的配置文件及数据。解压后的文件 / example/solr/collection1 就是一个 core,这个 core 由 / example/solr/solr.xml 管理。
如图:
一个 core 如果想让 solr 管理,就需要注册到 solr.xml 配置文件中,solr.xml 配置如见如下:
- <?xml version="1.0" encoding="UTF-8" ?>
- <solr persistent="true">
- <cores defaultCoreName="collection1" adminPath="/admin/cores" zkClientTimeout="${zkClientTimeout:15000}"
- hostPort="8983" hostContext="solr">
- <core loadOnStartup="true" instanceDir="collection1" transient="false"
- name="collection1" />
- </cores>
- </solr>
4. 创建多个 core 在实际的项目中,有时候一个 solr 下面不可能只有一个 core,会有多个。比如企业搜索、产品搜索等等。这时你可以复制一份或多份 / example/solr/collection1 到你的 solr home 中,并改成你想要的文件名,最后把新添加的 core 注册到 / example/solr/solr.xml 中:
- <?xml version="1.0" encoding="UTF-8" ?>
- <solr persistent="true">
- <cores defaultCoreName="collection1" adminPath="/admin/cores" zkClientTimeout="${zkClientTimeout:15000}"
- hostPort="8983" hostContext="solr">
- <core loadOnStartup="true" instanceDir="collection1" transient="false"
- name="collection1" />
- <core loadOnStartup="true" instanceDir="newCore" transient="false" name="newCore"
- />
- </cores>
- </solr>
5. 认识 core 的目录结构每个 core 中都有两个文件,conf 和 dataconf:主要用于存放 core 的配置文件,(1)schema.xml 用于定义索引库的字段及分词器等,这个配置文件是核心文件 (2)solrconfig.xml 定义了这个 core 的配置信息,比如:
- <autoCommit>
- <maxTime>
- 15000
- </maxTime>
- <openSearcher>
- false
- </openSearcher>
- </autoCommit>
定义了什么时候自动提交,提交后是否开启一个新的 searcher 等等。data:主要用于存放 core 的数据,即 index - 索引文件和 log - 日志记录。
3.Solr4.10.3 目录结构
来源: http://www.bubuko.com/infodetail-2079499.html