Linux环境下Solr6部署文档

说明:本文档仅说明solr在单例模式下的启动和配置,不适用SolrCloud模式下的情况。

一、Solr-6安装

1.        确保服务器安装的jdk版本在1.8以上

2.        在http://lucene.apache.org/solr/ 下载solr6的.tgz包

3.        将解压后的solr6包放入linux的自定义目录下


二、Solr-6启动

1.        进入solr的bin目录下,运行solr start脚本文件

当看到“Started Solr server on port 8983(pid=xxxxx).Happy searching!”提示时,启动成功,solr端口默认为8983。如图2-1:

可用solr status查看服务器启动状态


图2-1-solr启动

2.        在浏览器地址栏访问http://x.x.x.x(服务器ip):8983/solr/即可访问到solr的可视化管理界面Solr Admin,如图2-2:


图2-2:Solr Admin界面

三、创建core

1.        在自定义路径下,创建一个solrhome(名字可自定义)用来存放solr的core(可以为多个),即索引库数据,一个core相当于一个索引库。

2.        在solrhome下创建一个core文件夹(文件夹名字可自定义),代表一个core。

3.        在solrhome下配置solr.xml文件(可从solr的examples里找到模板进行修改),配置方法如图3-1:

 

图3-1:solr.xml配置

<cores>下可以配置多个core,一个<core>标签代表一个core

name:用户可以为创建的core自定义一个名称,这里暂定义为document。

(注:这里的core的名字和创建的core的文件夹名字不是一回事)

instanceDir:创建的core的根目录。

4.        在创建的core文件夹下创建一个conf文件夹:放入solrconfin.xml和managed-schema两个配置文件,(可从solr的examples里找到模板进行修改),具体配置方法见第四节第五节

5.        在core文件夹下创建一个data文件夹,作为当前core的数据目录

6.        在core文件夹下配置core.properties文件:

Solr5以上的版本支持自动发现core,core不再需要显式明确地在solr.xml中定义,仅需要在core.properties属性文件类配置core属性即可。Solr会自动在solrhome目录下发现core.properties文件。主要配置如图3-2:


图3-2:core.properties

name:core名称,必填。(注:这里的core的名字和创建的core的文件夹名字不是一回事)

config:solrconfig.xml配置文件的文件名,默认是solrconfig.xml

dataDir:当前目录下的data路径

schema:managed-schema文件的文件名,必须放在当前core的conf目录下

7.        进入Core Admin界面(Solr Admin左侧菜单栏中Core Admin选项)单击Add Core创建一个core,如图3-3:


图3-3:Solr Admin创建core

name:core的名字(用户自定义)。

instanceDir:创建的core的根目录。

dataDir:core下的data目录

config: solrconfig.xml的文件名

schema: managed-schema文件的文件名

8.        单击 Add Core蓝色按钮创建core后,左侧菜单栏下方下拉选框中可以看到创建的core的名字,选中进入后界面如图3-4:


图3-4:core管理界面

9.        core管理界面几个主要菜单简介

Analysis:分词管理,可以在该界面测试各分词器的分词效果

Documents:可执行不同solr索引命令的可视化及金额面

Files:显示当前core的配置文件

Query:结构化地查询一个core的不同元素

Schema:配置managed-schema的可视化界面

10.    core的目录结构图


图3-5:core目录结构图

四、solrconfig.xml配置

<luceneMatchVersion> 声明使用的lucene 的版本。

<lib> 配置solr 用到的 jar包,具体语法示例中基本都有了。

<dataDir>solrhome下core下的data 目录,可指定其它目录来存放所有索引数据。

<directoryFactory> 索引文件的类型,默认solr.NRTCachingDirectoryFactory,这个文件类型包装了 solr.StandardDirectoryFactory 和小文件内存缓存的类型,来提供 NRT(near-real-time近实时)搜索性能。。

<indexConfig> 主要索引相关配置:

l  <lockType>文件锁的类型,默认 native,使用 NativeFSLockFactory 。

l  <infoStream>为了调试, Lucene提供了这个参数,如果是 true的话, IndexWriter 会像设置的文件中写入 debug信息。

<jmx> 一般不需要设置具体可以查看 wiki文档http://wiki.apache.org/solr/SolrJmx

<updateHandler> 更新的Handler ,默认DirectUpdateHandler2,主要配置如下:

l  <updateLog>

<strname="dir"> 配置更新日志的存放位置

l   <autoCommit> 硬自动提交,可以配置 maxDocs即从上次提交后达到多少文档后会触发自动提交; maxTime时间限制; openSearcher ,如果设为false ,导致索引变化的最新提交,不需要重新打开 searcher就能看到这些变化,默认 false。

l  <autoSoftCommit>软自动提交,与前面的 <autuCommit> 相似,但是它只是让这些变化能够看到,并不保证这些变化会同步到磁盘上。这种方法比硬提交要快,而且更接近实时更友好。

<query> 配置检索词相关参数以及缓存配置参数。

l  <maxBooleanClauses>每个 BooleanQuery 中最大BooleanClauses 的数目,默认 1024。

l  <filterCache> filterCache 存储了无序的lucenedocumentid 集合。为 IndexSearcher 使用,当一个IndexSearcher 打开时,可以被重新赋于原来的值,或者使用旧的 IndexSearcher 的值,例如使用 LRUCache时,最近被访问的 Items将被赋予 IndexSearcher 。solr 默认是 FastLRUCache 。

l  <queryResultCache> 缓存查询的结果集的 docs的 id。

l  <documentCache> 缓存 document对象,因为 document中的内部 id是 transient, 所以autowarmed 为0 ,不能被 autowarmed。

l  <enableLazyFieldLoading> 保存的字段,如果不需要的话就懒加载,默认true。

l  <queryResultWindowSize>queryResultCache 的一个参数。

l  <queryResultMaxDocsCached> queryResultCache 的一个参数。

l  <listener event"newSearcher"class="solr.QuerySenderListener">query 的事件监听器。

l  <useColdSearcher>当一个检索请求到达时,如果现在没有注册的searcher,那么直接注册正在预热的 searcher并使用它。如果设为 false则所有请求都要 block,直到有 searcher完成预热。

l  <maxWarmingSearchers>后台同步预热的 searchers数量。

<requestDispatcherhandleSelect="false"> solr接受请求后如何处理,推荐新手使用false

l  <requestParsersenableRemoteStreaming="true" multipartUploadLimitInKB="2048000"formdataUploadLimitInKB="2048" /> 使系统能够接收远程流

l  <httpCachingnever304="true">http cache 参数,solr 不输出任何 HTTPCaching相关的头信息。

<requestHandler> 接收请求,根据name值不同分发到不同的handler。

 "/select" 检索 SearchHandler

 "/query" 检索 SearchHandler

 "/get" RealTimeGetHandler

 "/browse" SearcherHandler

 "/update" UpdateRequestHandler

 "/update/json" JsonUpdateRequestHandler

 "/update/csv" CSVRequestHandler

 "/update/extract"ExtractingRequestHandler

 "/analysis/field" FieldAnalysisRequestHandler

 "/analysis/document"DocumentAnalysisRequestHandler

 "/admin/" AdminHandlers

 "/replication" 复制,要有主,有从

l  <searchComponent> 注册searchComponent

l  <queryResponseWriter> 返回数据

五、manage-schema配置

1.        <fields>块:声明一系列的<field>字段

<field name="" type="" indexde=""stored="" required="" multiValued=""omitNorms="" termVectors="" termPositions=""termOffsets="">

name:字段名称

type:字段类型,同<types> 的fieldType

indexed:是否索引

stored:是否保存

required:是否必须

multiValuer:在同一篇文档中可以有多个值

omitNorms:true的话忽略norms

termVectors:默认false,如果是true的话,要保存字段的termvector

termPositions:保存term vector的位置信息

termOffects:保存term vector的偏移信息

default:字段的默认值

<dynamicField>动态字段,当字段是可变字段时采用这种配置

2.        <types>块:声明一系列的<fieldtype>,以 Solr fieldtype类为基础,如同默认选项一样来配置自己的类型。任何 FieldType 的子类都可以作为 field type 来使用,使用时可以用完整的包名,如果field type 类在 solr 里,那可以用“solr”代替包名。提供多种不同实现的普通数据类型(integer, float等)。通用的选项有:

name:类型名称

class:对应于solr fieldtype类

sortMissingLast=true|false 如果设置为true,那么对这个字段排序的时候,包含该字段的文档就排到不包含该字段的文档前面。

sortMissingFirst=true|false 如果设置为true,那么对这个字段排序的时候,没有该字段的文档排在包含该字段的文档前面

precisionStep:默认值4,用于范围查询,数值类型在lucence中以经过编码的string形式存储。precisionStep用来分解编码后的string。该值越大,那么索引就越小,那么范围查询的性能(尤其是细粒度的范围查询)也越差。

positionIncrementGap和multiValued一起使用,设置多个值之间的虚拟空白的数量。字段有多个值时使用

l  <analyzer>(必须将涉及到的类的jar包放置于webapp下)

         <tokenizer>:配置各种不同的分词器实现不同的分词效果

         <filter>:配置各种不同的过滤器,可以进行大小写过滤,停顿词过滤等。

3.        其他配置

<uniqueKey>唯一字段,除非这个字段标记了“required=false”,否则默认为required字段

<copyField>一个源字段一个目的字段,将源字段的内容拷贝到目的字段,可以将多个字段合并,也可以对同一个字段,不同索引方式。

<defaultSearchField>默认的搜索字段

<solrQueryParser defaultOperator="OR"/>默认的检索词间的关系

 

六、参考资料

1.        Solr-6.0.0官方文档:http://lucene.apache.org/solr/

2.        《跟益达学Solr5之玩转post.jar》创建core部分:   http://www.tuicool.com/articles/miInQbF

3.        solr.xml文件解析: http://blog.csdn.net/zyb243380456/article/details/7411373

4.        《跟益达学Solr5之core.properties配置详解》:http://www.tools138.com/create/article/20150515/020005434.html

5.        《solr使用手册--部署配置》:http://wenku.baidu.com/link?url=wo39I_w6iS5ns96FwCP_BZ7T9mBATbcZEjy2oQqnYgnx-DYubxTr5NuY66UX3MyUhTTMZ7mfmQAkgbobTCGNNQ3ZBmcPId5SS4OhpH7cZA_

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值