一、介绍:
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
二、下载tar包解压后的目录结构:
(1)bin:是脚本的启动目录
(2)contrib:第三方包存放的目录
(3)dev-tools:跟开发工具相关的包
(4)dist:编译打包后存放目录,即构建后的输出产物存放的目录
(5)docs:solr文档的存放目录
(6)example:示范例子的存放目录,这里展示了DIH,即数据导入处理的例子
(7)licenses:权限相关的
(8)lucene:solr基于Lucene开发,本身是lucene代码的目录,但是构建后都为空,相关东西已经到jar包中
(9)server:即solr搜索引擎框架,基于jetty web服务器开发的。包含jetty服务器的配置。(这个目录就类似于一个包含了tomcat服务器,里面有一个基于solr的web工程)
server目录下:
contexts:jetty的环境
etc:jetty的配置文件
lib:jetty服务器的jar包
logs:日志文件
modules:jetty的启动模式
resources:资源文件
scripts:脚本文件
solr:solr服务器的配置文件,solr基于jetty服务器开发的
solr-webapp:solr的web工程
tmp:临时文件
start.jar:启动jar包。通过java命令就可以启动一个基于jetty服务器的web工程
三、核心(core)
A.
管理,solr服务器框架中可以包含多个core实例,每个core有自身的配置文件及数据。
解压后的文件/server/solr/collection1就是一个core,这个core由/server/solr/solr.xml管理。(solr6后,solr.xml不需要手动维护,自动添加核心)
如图:
B.
创建多个core
在实际的项目中,有时候一个solr下面不可能只有一个core,会有多个。比如企业搜索、产品搜索等等。这时你可以复制一份或多份/example/solr/collection1到你的solr home中,并改成你想要的文件名
C.
认识core的目录结构
conf:主要用于存放core的配置文件,
(1)、managed-schema(solr6以后的命名)用于定义索引库的字段及分词器等,这个配置文件是核心文件。
类似于关系数据库中的表结构,在添加文当到索引中时需要指定Schema,Schema文件主要包含三部分:字段(Field)、字段类型(FieldType)、唯一键(uniqueKey)
*字段类型(FieldType):用来定义添加到索引中的xml文件字段(Field)中的类型,如:int,String,date,
*字段(Field):添加到索引文件中时的字段名称
*唯一键(uniqueKey):uniqueKey是用来标识文档唯一性的一个字段(Feild),在更新和删除时用到
(2)、solrconfig.xml定义了这个core的配置信息,它定义Solr如果处理索引、高亮、搜索等很多http请求,同时还指定了缓存策略,用的比较多的元素包括
data:主要用于存放core的数据,即index-索引文件和log-日志记录
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">