Solr7.3.0入门教程,部署Solr到Tomcat,配置Solr中文分词器
solr 基本介绍
Apache Solr (读音: SOLer) 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。Apache Solr 中存储的资源是以 Document 为对象进行存储的。每个文档由一系列的 Field 构成,每个 Field 表示资源的一个属性。Solr 中的每个 Document 需要有能唯一标识其自身的属性,默认情况下这个属性的名字是 id,在 Schema 配置文件中使用:id进行描述。
Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提 供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。
solr 名称来源
Search On Lucene Replication
solr 历史
2004年 CNET 开发 Solar,为 CNET 提供站内搜索服务
2006年1月捐献给 Apache ,成为 Apache 的孵化项目
一年后 Solr 孵化成熟,发布了1.2版,并成为 Lucene 的子项目
2010年6月,solr 发布了的1.4.1版,这是1.4的 bugfix 版本,1.4.1的solr使用的lucene是2.9版本的
solr 从1.4.x版本以后,为了保持和lucene同步的版本,solr直接进入3.0版本。
环境准备
下载Solr7.3.0并解压
可以直接在Solr官方网站进行下载。下载Tomcat 8或者 Tomcat 9 并解压
可以直接在Tomcat官方网站进行下载安装。
https://tomcat.apache.org/download-90.cgi
部署Solr到Tomcat
说明: 我的解压路径
1 |
#Solr:D:developsolr-7.3.0 |
复制Solr文件到Tomcat
- 拷贝文件夹
D:developsolr-7.3.0serversolr-webappwebapp 到
D:webserverapache-tomcat-9.0.1webapps 下,并且重命名为solr7.3 - 复制D:developsolr-7.3.0serverlibext 下的所有Jar包到
D:webserverapache-tomcat-9.0.1webappssolr7.3WEB-INFlib - 复制D:developsolr-7.3.0dist下的
solr-dataimporthandler-7.3.0.jar
solr-dataimporthandler-extras-7.3.0.jar
到D:webserverapache-tomcat-9.0.1webappssolr7.3WEB-INFlib - 复制D:developsolr-7.3.0serverlib下的
metrics-开头的五个Jar
到D:webserverapache-tomcat-9.0.1webappssolr7.3WEB-INFlib - 复制D:developsolr-7.3.0serverresourceslog4j.properties到
D:webserverapache-tomcat-9.0.1webappssolr7.3WEB-INFclasses
配置Solr Home
- 新建文件夹D:developsolr-7.3.0-home,复制D:developsolr-7.3.0serversolr下的所有内容到D:developsolr-7.3.0-home。
- 打开D:webserverapache-tomcat-9.0.1webappssolr7.3WEB-INFweb.xml
在47行配置SolrHome,用于指定数据存放位置。
1
2
3
4
5<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>D:developsolr-7.3.0-home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
关闭安全约束
注释掉D:webserverapache-tomcat-9.0.1webappssolr7.3WEB-INFweb.xml最下方的安全约束,让项目启动之后可以正常访问。
1 |
<!-- |
Tomcat启动访问
至此,Solr配置以及完成,启动Tomcat访问
http://localhost:8080/solr7.3/index.html
)
创建Solr Core
点击网页左侧菜单Core Admin
输入
name:blog
instanceDir:blog
点击Add Core,网页上方提示在D:developsolr-7.3.0-homeblog下无法找到solrconfig.xml:
1 |
Error CREATEing SolrCore 'blog': Unable to create core [blog] Caused by: Can't find resource 'solrconfig.xml' in classpath or 'D:developsolr-7.3.0-homeblog' |
我们复制官方给出的默认配置,复制
D:developsolr-7.3.0-homeconfigsets_defaultconf
到D:developsolr-7.3.0-homeblog下,回到页面,再次点击Add Core,等待页面添加成功自动刷新。
此时,在SolrHome下的blog文件夹下生成了相关文件:

添加 Core 字段
在页面上添加
打开http://localhost:8080/solr7.3/index.html选择左侧菜单`Core Selector选择刚才添加的blog,接着选择下面的Schema。可以在出现的页面上填写字段信息name:title,field type:string,然后点击Add Field`完成添加。
Solr中的Field、CopyField、DynamicField与其他Field
在配置文件中添加
我们打开文件:
D:developsolr-7.3.0-homeblogconfmanaged-schema
搜索title关键词,搜索到如下信息:
1 |
<field name="title" type="string" indexed="true" stored="true"/> |
可见,我们刚才在页面添加的字段信息最终会生成此条配置,因此,我们也可以拷贝这个配置更改name值为content就可以完成content字段的添加。
配置完成之后点击页面Core Admin然后点击Reload刷新信息,我们就可以在Schema中查看到content字段。
添加/更新/查询数据
在页面选择blog Core,选择Documents,在Document(s)中输入下面内容进行数据然后点击Submit Document添加数据,如果ID已经存在,则为更新。如果JSON中没有写ID字段,会随机生成ID。
1 |
{
|
提交之后可以看到成功添加信息的反馈。
1 |
Status: success |
数据已经成功添加,如果需要查询数据可以点击左侧Query,点击Execute Query查询出刚才添加的数据。
中文分词器的使用
在已经运行的页面上,选择blog Core,然后选择Analysis,输入中国人民,字段类型选择text,点击Analyse Values可以看到没有中文分词器的结果:

下面使用中文分词器,下载ikanalyzer-solr6.5
解压将IKAnalyzer.cfg.xml以及stopword.dic解压到
apache-tomcat-9.0.1webappssolr7.3WEB-INFclasses
解压将里面的两个jar包ik-analyzer-solr5-5.x.jar以及solr-analyzer-ik-5.1.0.jar解压到
apache-tomcat-9.0.1webappssolr7.3WEB-INFlib
打开刚才创建的blog core目录solr-7.3.0-homeblogconf,编辑managed-schema文件添加配置:
1 |
<fieldType name="text_ik" class="solr.TextField"> |
在页面选择Core Admin -> blog -> Reload 刷新配置,然后选择blog Core,然后选择Analysis,输入中国人民,字段类型选择text_ik,点击Analyse Values可以看到没有中文分词器的结果:

参考资料
Solr7.3.0入门教程,部署Solr到Tomcat,配置Solr中文分词器的更多相关文章
- solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件
昨天已经在Tomcat容器中成功的部署了solr全文检索引擎系统的服务:今天来分享一下solr服务在海量数据的网站中是如何实现数据的检索. 在solr服务中集成IKAnalyzer中文分词器的步骤: ...
- Solr7.2.1环境搭建和配置ik中文分词器
solr7.2.1环境搭建和配置ik中文分词器 安装环境:Jdk 1.8. windows 10 安装包准备: solr 各种版本集合下载:http://archive.apache.org/dist ...
- Solr 安装与集成IK中文分词器
创建wangchuanfu core 1. 在example目录下创建wangchuanfu-solr文件夹: 2. 将./solr下的solr.xml拷贝到wangchuanfu-solr目录下 ...
- 在eclipse中构建solr项目+添加core+整合mysql+添加中文分词器
最近在研究solr,这里只记录一下eclipse中构建solr项目,添加core,整合mysql,添加中文分词器的过程. 版本信息:solr版本6.2.0+tomcat8+jdk1.8 推荐阅读:so ...
- solr配置中文分词器
配置IK分词器 在/opt/solr-7.7.1/server/solr-webapp/webapp/WEB-INF/lib目录中加入IK分词器的jar包 在/opt/solr-7.7.1/serve ...
- 我与solr(六)--solr6.0配置中文分词器IK Analyzer
转自:http://blog.csdn.net/linzhiqiang0316/article/details/51554217,表示感谢. 由于前面没有设置分词器,以至于查询的结果出入比较大,并且无 ...
- Solr入门之(8)中文分词器配置
Solr中虽然提供了一个中文分词器,但是效果很差,可以使用IKAnalyzer或Mmseg4j 或其他中文分词器. 一.IKAnalyzer分词器配置: 1.下载IKAnalyzer(IKAnalyz ...
- 真分布式SolrCloud+Zookeeper+tomcat搭建、索引Mysql数据库、IK中文分词器配置以及web项目中solr的应用(1)
版权声明:本文为博主原创文章,转载请注明本文地址.http://www.cnblogs.com/o0Iris0o/p/5813856.html 内容介绍: 真分布式SolrCloud+Zookeepe ...
- Solr7.1---数据库导入并建立中文分词器
这里只是告诉你如何导入,生产环境不要这样部署你的solr服务. 首先修改solrConfig.xml文件 备份_default文件夹 修改solrconfig.xml 加入如下内容 官方示例:< ...
随机推荐
- 安装完Ubuntu后没有设置过root密码,想要进入root账户怎么办?
安装完Ubuntu后没有设置过root密码,想要进入root账户怎么办? Ubuntu的默认root密码是随机的,即每次开机都有一个新的root密码.我们可以在终端输入命令 sudo passwd,然 ...
- Single设计模式
JavaSE基础中学习的single设计模式复习: * 单列设计模式概念理解:用程序实现在存储中只能有一个对象. * * 恶汉式实现思路分析: * 1.如何实现类不能被其他人多次创建呢? * 实现: ...
- Maven--可选依赖
假设有这样换一个依赖关系,项目 A 依赖于项目 B,项目 B 依赖于项目 X 和 Y,B 对于 X 和 Y的依赖都是可选依赖: A -> B B -> X(可选) B -> Y(可选 ...
- 1027A. Palindromic Twist#变形回文串
题目内容:http://codeforces.com/contest/1027/problem/A 题目解析:输入T组字符串,每个字符串都必须改变一次,每个字母改变的规则是变成相邻的字母,字母a只能变 ...
- AtCoder Beginner Contest 129
ABCD 签到(A.B.C过水已隐藏) #include<bits/stdc++.h> using namespace std; ; int n,m,ans,f1[N][N],f2[N][ ...
- 计量经济与时间序列_关于Box-Jenkins的ARMA模型的经济学意义(重要思路)
1 很多人已经了解到AR(1)这种最简单的时间序列模型,ARMA模型包括AR模型和MA模型两个部分,这里要详细介绍Box-Jenkins模型的观念(有些资料中把ARMA模型叫做Box-Jenkins模 ...
- 使用tensorflow的retrain.py训练图片分类器
参考 https://hackernoon.com/creating-insanely-fast-image-classifiers-with-mobilenet-in-tensorflow-f030 ...
- 蓝桥杯 乘积最大(区间dp、数据水的话long long,暴力就能过)
Description 今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋 ...
- Matlab高级教程_第二篇:Matlab相见恨晚的模块_02_并行运算-关于parfor的问题
1 我们知道MATLAB支持并行运行一般有四种模式: 第一种模式:本机调用多核CPU性能并行运算 第二种模式:本机调用GPU性能并行运算 第三种模式:多计算机组成集群,调用集群CPU性能并行运算 第四 ...
- 吴裕雄--天生自然python学习笔记:python 用pygame模块开发俄罗斯方块游戏
俄罗斯方块游戏 多年前,游戏机中最流行的游戏就是“俄罗斯方块”了.时至今日,虽然网络 游戏日新月异 ,但“俄罗斯方块”这款小游戏仍在许多人心中 占有一席之地.本例中, 我们将亲手设计一个简单的俄罗斯方 ...
