Solr单机配置详解

Solr 单机版安装

安装环境

安装 jdk:JDK 版本: jdk-8u11-linux-x64.tar.gz

环境变量配置;

export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

 

安装 tomcat :

Tomcat 版本:apache-tomcat-7.0.47.tar.gz

 

安装 Solr

Solr 版本:solr-4.10.3.tgz.tgz

 

1Solr 是由两个部分构成:

1Solr web 服务

2Solr 的索引库

 

Solr 的目录介绍

bin:启动 solr 的一些脚本,但是需要依赖 jeety 容器

contrib:存放的是 solr 对第三方插件支持的内容

distsolr 编译后所产生一些文件夹。War 或者是 jar

example:是 solr 的案例。在该目录下有两个文件夹对于我们来说比较重要。

1) webapps:在该目录中存放了一个 solr war 包。与 dist 目录下的那个 war 文 件是同一个,只是存放的目录及名称不同。

2) solr: solr 的一个标准的索引库示例。

3) lib/ext:该目录下存放的是一些日志处理器的 jar 包。Solr web 服务也要依赖于日志处理的 jar 包。所以我们在安装 solr 服务时,需要将该目录下的 jar 拷贝solr 服务

 

安装 Solr 服务

其实安装 solr 服务就是将 solr war 包,拷贝到 tomcat webapps 目录下。

2.6启动 tomcat,解压 war

查看 tomcat 的启动日志,查看是否做 war 的解压

tailf logs/catalina.out

 

 

添加服务中所依赖的 jar

由于我们在解压后的 solr 的项目中,需要依赖一些日志处理的 jar 包。所以我们在添加依赖的 jar 包时,需要将原来的 war 删除掉。否则 tomcat 再次启动时,会将原来的目录覆盖掉。那么新添加的 jar 包也就没了。注意:在删除 war 包时,一定要在 tomcat 关闭的状态下删除 war 包。如果在 tomcat 启动状态下删除 war 包,那么 tomcat 在关闭时会将解压的目录一并的也删除掉。

 

安装 solr 索引库

solr 的解压目录的 example 目录下有个 solr 的目录,就是 solr 的一个基本的索引库示例。

 

拷贝索引库

将该索引库拷贝到指定目录下(可以是任意目录),虽然具备任意性。但是也不能太随便。应该放到/usr/local/solrhome。先创建 solrhome 目录

 

solr 的服务中配置索引库

solr 的服务中配置索引库的位置注意:需要配置的路径为索引库的根。可以使用 linux中的 pwd 命令查看绝对路径。将该路径添加到 solr 服务中的 web.xml 文件中 Solr 服务在启动时,是通过他的 web.xml 文件中的节点配置获取索引库的绝对位置的。vim web.xml web.xml 中找到<env-entry>.注意:该节点默认是注释状态的,我们需要先去掉注释。然后将拷贝的索引库的路径添加到该节点的<env-entry-value>节点中

 

访问 Solr 服务

启动 tomcat 通过 solr 的管理页面可以对 solr 进行操作了。启动 tomcat 后,打开浏览器输入 solr 的访问 url 就可以访问 solr 服务了

 

solr home 目录结构

3.1.1solr.xml 配置 solr 集群

3.1.2collection1(索引库:solr core

3.1.3core.properties 设置索引库的名称

3.1.4data 存放索引

3.1.5conf 索引库的配置目录

3.1.5.1 schema.xml:配置字段以及字段类型

 

索引库配置

schema.xml 是用来定义索引数据中的域的,包括域名称,域类型,域是否索引,是否分词,是否存储等等。

如何定义索引库中的 Field

<field>:定义域

<field name="_version_" type="long" indexed="true" stored="true"/>

name:表示域的名称,是强制必须有的属性

type:域类型的名称,与 fieldType 元素的 name 属性值对应,是强制必须有的属性

indexed:是否参与检索。true 即表示需要对该域进行索引。默认值为 false

stored:否将 field 域中的内容存储到文档域,简单通俗的来说,就是你这一个

field 需不需要被当作查询结果返回。

required:表示这个域是否是必须要在 document 中存在,默认值为 false,如果此配置项设为 true,则你的 document 中必须要添加此域,否则你创建索引时会抛异常。

 

如何定义索引库中的 FieldType

<fieldType>:定义域的类型

<fieldType name="string" class="solr.StrField" sortMissingLast="true" />

Name:域类型的名称,作为域类型标识符存在,在定义域(Field)时使用的类型(FieldType)属性就是域类型的名称。

Class:域类型的数据类型,该属性指向的是 solr 中的已定义的类型,或者是用户定义的类型,域类型中的数据会被初始化成 class 执行类类的对象。sortMissingFirst/sortMissingLast:控制当排序域的值不存在时该文档(Document)所在队列的位置。true 是则在队头/队尾

 

如何定义索引库中的 CopyField

<copyField>:复制域。可实现更新与查询分离

<copyField source="item_title" dest="item_keywords"/>

Source:源域

Dest:目标域

 

Solr 的索引机制:

正排索引(正向索引)

 

倒排索引(反向索引)

 

配置中文分词器(IK Analyzer):

上传中文分词器 jar 包,以及配置文件

将中文分词器的配置文件以及 jar包拷贝到 Solr 所对应的目录下 :

将配置文件需要放到 classes 目录下。

在 solr 中的 WEB-INF 下时没有 classes 目录的。我们需要先创建一个

Jar 包放到 WEB-INF/lib 目录下。

 

在 schema.xml 中配置中文分词器

<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值