Solr的安装和配置介绍
文章目录
下载
从Solr官方网站(http://lucene.apache.org/solr/ )下载Solr最新版本。
注意:solr-7.5.0需要的jdk的版本须在1.8及其以上。*
安装运行
安装:solr是的安装类似Tomcat的安装,直接解压即可。
运行:window中启动,从cmd中进入到solr的解压目录里的bin目录,执行 solr start
;默认运行在8983
端口,可以通过solr start –p [port]
指定端口,更多操作可以通过solr –help
查看。打开浏览器,输入solr访问路径:http://localhost:8983/solr,就可以看到Solr提供的控制台。
浏览器打开Solr的界面
Solr解压后的目录
根目录
参考上图,根目录说明:
bin:solr的运行脚本 ,想要运行服务的服务的时候,可以双击运行里面的
solr.cmd
文件,不过使用的自带的jetty服务器。
contrib:solr的一些软件/插件,用于增强solr的功能。
dist:该目录包含build
过程中产生的war和jar文件,以及相关的依赖文件。
docs:solr的API文档。
example:包含Solr的简单示例。在其中的exampledocs
子文件夹下存放着前面提到过的用于在Windows
环境下发送文档到Solr的工具post.jar
程序。
server:Solr Core
核心必要文件都存放在这里。
licenses:solr相关的一些许可信息。
server目录
参考上图,server目录的子目录:
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的示例配置文件。每创建一个核心Core
都会在server
目录下生成相应的core
名称目录。
solr-webapp:Solr的平台管理界面的站点就存放在这里。
tmp:存放临时文件。
Core(核心)
Solr有一个Core的概念,中文叫做核心,可以简单的将Core理解成一个项目对应一个Core或者一个模块对应一个Core。 Solr服务器框架中可以包含多个Core实例,每个Core有自身的配置文件及数据。例如:core1表示会计部门的数据,core2表示客服部门的数据。
Core的目录结果一般如下:
conf:主要用于存放core的配置文件,
(1)、schema.xml( managed-schema )
用于定义索引库的字段及分词器等,这个配置文件是核心文件。
(2)、solrconfig.xml
定义了这个core的配置信息。
data:主要用于存放core的数据,即index-索引文件和log-日志记录。
core.properties:里面只是定义了core的名字
文档(Document)
文档是Solr索引(动词,indexing
)和搜索的最基本单元,它类似于关系数据库表中的一条记录,可以包含一个或多个字段(Field),每个字段包含一个name和文本值。字段在被索引的同时可以存储在索引中,搜索时就能返回该字段的值,通常文档都应该包含一个能唯一表示该文档的id字段。下面是文档的示例:
文档的示例,每个字段将在Solr的schema中被定义为特定的字段类型。一个文档通过定义schema
,映射为特定字段类型的字段集合,根据字段类型进行内容分析,对分析的结果建立索引。
模式(Schema)
Solr中的Schema类似于关系数据库中的表结构,它以schema.xml
的文本形式存在在conf目录下,在添加文当到索引中时需要指定Schema,Schema文件主要包含三部分:字段(Field)、字段类型(FieldType)、唯一键(uniqueKey)。
字段类型(FieldType):用来定义添加到索引中的xml文件字段(Field)中的类型,如:int,String,date。
字段(Field):添加到索引文件中时的字段名称。
唯一键(uniqueKey):uniqueKey是用来标识文档唯一性的一个字段(Feild),在更新和删除时用到。
managed-schema文件示例
域(Field)
在Solr中,字段(Field)是构成Document的基本单元。对应于数据库表中的某一列。字段是包括了名称,类型以及对字段对应的值如何处理的一种元数据。比如:
indexed:indexed=true
时,表示字段会加被Sorl处理加入到索引中,只有被索引的字段才能被搜索到。
stored:stored=true
,字段值会以保存一份原始内容在索引中,可以被搜索组件组件返回,考虑到性能问题,对于长文本就不适合存储在索引中。
域的数据类型(Field Type)
Solr中每个字段都有一个对应的字段类型,比如:float、long、double、date、text
,Solr提供了丰富字段类型,同时,我们还可以自定义适合自己的数据类型,例如:
Solr的配置文件( Solrconfig)
如果把Schema定义为Solr的Model的话,那么Solrconfig
就是Solr的Configuration
,它定义Solr如何处理索引、高亮、搜索等很多请求,同时还指定了缓存策略。下面的是请求处理器:
缓存策略
总结
索引(index),文档(document),域(field)和项(term),他们间的基本关系是这样的:
一个索引包含一系列的文档;
一个文档是一系列域的集合
一个域是一系列命了名称的项的集合
一个项是一个字符串