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 是由两个部分构成:

1) Solr 的 web 服务

2) Solr 的索引库

Solr 的目录介绍

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

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

dist:solr 编译后所产生一些文件夹。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>

Solr单机配置详解的更多相关文章

  1. 阿里云slb和ucloud负载均衡ulb添加ssl证书将http服务https化的配置详解

    阿里云和ucloud服务器配置ssl证书将http服务https化的配置详解 项目背景: 苹果App于2017年1月1日将启用App Transport Security安全功能,即强制App通过HT ...

  2. Linux - CentOS6.5服务器搭建与初始化配置详解(上)

    1.新建一个虚拟机 选择典型 单机下一步 p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm 0cm 0.0001pt; text-align: ...

  3. (图文教程)IntelliJ IDEA 导入Eclipse/MyEclipse 项目 配置详解+快捷键分享

    (图文教程)IntelliJ IDEA 导入Eclipse/MyEclipse 项目 配置详解+快捷键分享 IntelliJ IDEA 使用教程.快捷键配置. 该教程针对原始jar包依赖的工程.mav ...

  4. Log4j配置详解(转)

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

  5. logback 常用配置详解<appender>

    logback 常用配置详解 <appender> <appender>: <appender>是<configuration>的子节点,是负责写日志的 ...

  6. [转]阿里巴巴数据库连接池 druid配置详解

    一.背景 java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色 ...

  7. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  8. logback配置详解3<filter>

    logback 常用配置详解(三) <filter> <filter>: 过滤器,执行一个过滤器会有返回个枚举值,即DENY,NEUTRAL,ACCEPT其中之一.返回DENY ...

  9. logback配置详解2<appender>

    logback 常用配置详解(二) <appender> <appender>: <appender>是<configuration>的子节点,是负责写 ...

随机推荐

  1. 2019年10月13日 linux习题 wangqingchao

    1. GUN的含义是: GNU's Not UNIX . 2. Linux一般有3个主要部分:内核.命令解释层.实用工具. 3.POSIX是可携式操作系统接口的缩写,重点在规范核心与应用程序之间的接口 ...

  2. 如何查看当前linux服务器是否支持虚拟化

    [root@localhost ~]# grep -E '(svm|vmx)' /proc/cpuinfo 或者: [root@localhost ~]# cat /proc/cpuinfo 找到fl ...

  3. 本地Git连接GitLab(服务器)远程仓库

    1.简介 远程仓库是指托管在网络上的项目仓库,现在互联网上有很多项目托管平台,比如github.gitlab等.为了不公开自己项目代码,可以在自己的服务器上搭建自己的项目仓库,最常见的是搭建GitLa ...

  4. Appium+python自动化(四十二)-Appium自动化测试框架综合实践- 寿终正寝完结篇(超详解)

    1.简介 按照上一篇的计划,今天给小伙伴们分享执行测试用例,生成测试报告,以及自动化平台.今天这篇分享讲解完.Appium自动化测试框架就要告一段落了. 2.执行测试用例&报告生成 测试报告, ...

  5. mysql中int、bigint、smallint、tinyint 长度

    mysql中int.bigint.smallint.tinyint 长度 bigint -2^63 (-9223372036854775808) 到 2^63-1 (92233720368547758 ...

  6. 前端与算法 leetcode 8. 字符串转换整数 (atoi)

    目录 # 前端与算法 leetcode 8. 字符串转换整数 (atoi) 题目描述 概要 提示 解析 解法一:正则 解法二:api 解法二:手搓一个api 算法 传入测试用例的运行结果 执行结果 G ...

  7. 标准库bufio个人详解

    本文是我有通俗的语言写的如果有误请指出. 先看bufio官方文档 https://studygolang.com/pkgdoc文档地址 主要分三部分Reader.Writer.Scanner 分别是读 ...

  8. 【01】主函数main

    java和C#非常相似,它们大部分的语法是一样的,但尽管如此,也有一些地方是不同的. 为了更好地学习java或C#,有必要分清它们两者到底在哪里不同. 首先,我们将探讨主函数main. java的主函 ...

  9. PHP与Python进行数据交互

    最近,决定在一个项目用tp5进行APP接口开发,用Python做数据分析,然后这就面临一个问题:PHP和Python如何进行数据交互? 思路 我解决此问题的方法是利用了PHP的passthru函数来调 ...

  10. 扛把子组作业要求 20191024-3 互评Alpha阶段作品

    此作业的要求参见[https://edu.cnblogs.com/campus/nenu/2019fall/homework/9860] 组名:扛把子 组长:迟俊文 组员:宋晓丽 梁梦瑶 韩昊 刘信鹏 ...