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和data
conf:主要用于存放core的配置文件,
(1)schema.xml用于定义索引库的字段及分词器等,这个配置文件是核心文件
(2)solrconfig.xml定义了这个core的配置信息,比如:
<autoCommit>
<maxTime>15000</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
定义了什么时候自动提交,提交后是否开启一个新的searcher等等。
data:主要用于存放core的数据,即index-索引文件和log-日志记录。