Solr--下载安装,ik中文分词器的配置与使用

Solr是一个独立的企业级搜索应用服务器,它对外提供API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引(solr生成倒排索引,数据库生成的索引是二叉树索引,效率差距很大);也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

准备:需要下载tomcat 和solr

一.Solr的下载

下载链接如下:百度网盘里的是solr-7.7.2
百度网盘(solr压缩包)

二.Solr的安装配置

(此处参考solr入门教程
(1)将 solr 压缩包中 solr-5.3.0\server\solr-webapp\文件夹下有个webapp文件夹,将之复制到Tomcat\webapps\目录下,文件夹名改成solr ;
(2)将 solr 压缩包中 solr-5.3.0\server\lib\ext 中的 jar 全部复制到 Tomcat\ webapps\solr\WEB-INF\lib 目录中;
(3)将 solr 压缩包中 solr-5.3.0/ server/resources /log4j.properties 复制到Tomcat\ webapps\solr\WEB-INF\lib 目录中;
(4)将 solr 压缩包中 solr-5.3.0/server/solr 目录复制到计算机某个目录下,如D:\testsolr\solr_home(solr创建的core到时会存放在该目录下);
(5)打开Tomcat/webapps/solr/WEB-INF下的web.xml,找到如下配置内容(初始状态下该内容是被注释掉的):

 <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>D:/testsolr/solr_home/solr</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

将 env-entry-value 中的内容改成你的solr_home路径(第5步的文件),这里是D:/testsolr/solr_home/solr;

三.solr的运行

1.打开solr-7.7.2的bin目录 我的是D:\Solr\solr-7.7.2\bin
在这里插入图片描述
2.输入solr start 命令启动solr,默认端口号8983
也可通过输入命令指定端口号 如:solr start –p 8888.
在这里插入图片描述
3.打开网址:http://localhost:8983/solr 会进入如下页面
在这里插入图片描述

四. solr常用命令:

solr start –p 端口号 单机版启动solr服务
solr restart –p 端口号 重启solr服务
solr stop –p 端口号关闭solr服务
solr create –c name 创建一个core实例
官方文档

五.创建core

core就是solr的一个实例,一个solr服务下可以有多个core,每个core下都有自己的索引库和与之相应的配置文件,所以在操作solr创建索引之前要创建一个core,因为索引都存在core下面。

创建core有多种方法此处只写我使用的一种:
(1)直接在D:\Solr\solr-7.7.2\server\solr下创建新文件夹,名字自定义,此处命名为market,作为新建的core;
(2)找到D:\Solr\solr-7.7.2\server\solr/configsets/_default目录下的conf文件夹,然后拷贝一份到D:\Solr\solr-7.7.2/server/solr/market目录节点下。
在这里插入图片描述
(3)然后按照下图操作:
在这里插入图片描述
(4)查看新建的实例:
在这里插入图片描述
(5)如果遇到以下页面报错 :查看D:\Solr\solr-7.7.2\server\solr目录下有没有market文件夹,以及market文件夹里有没有conf文件夹;没有的话按照之前的(1)(2)步重新创建
在这里插入图片描述

六.配置schema

schema是用来告诉solr如何建立索引的,他的配置围绕着一个schema配置文件,这个配置文件决定着solr如何建立索引,每个字段的数据类型,分词方式等,老版本的schema配置文件的名字叫做schema.xml他的配置方式就是手工编辑,但是现在新版本的schema配置文件的名字叫做managed-schema,他的配置方式不再是用手工编辑而是使用schemaAPI来配置,官方给出的解释是使用schemaAPI修改managed-schema内容后不需要重新加载core或者重启solr更适合在生产环境下维护,如果使用手工编辑的方式更改配置不进行重加载core有可能会造成配置丢失,配置文件所在的路径如下图:
在这里插入图片描述
1. schema主要成员:

(1)fieldType:为field定义类型,最主要作用是定义分词器,分词器决定着如何从文档中检索关键字。
(2)analyzer:他是fieldType下的子元素,这就是传说中的分词器,他由一组tokenizer和filter组成,如下图所示
在这里插入图片描述
(3)field:他是创建索引用的字段,如果想要这个字段生成索引需要配置他的indexed属性为true,stored属性为true表示存储该索引。如下图所示每个field都要引用一种fieldType由type属性定义
在这里插入图片描述
2.Schema API:
Schema API就是用post请求向solr服务器发送携带json参数的请求,所有操作内容都封装在json中,如果是linux系统可以直接使用curl工具,如果是windows系统可以使用Postman,也可以直接在浏览器中直接输入链接
API内容链接

在浏览器地址栏中输入http://localhost:8983/solr/market/schema //market是core的名字
在Postman curl工具中输入也是一样的
在这里插入图片描述

七.IKAnalyzer中文分词器

solr自带了一些中文分词器,比较好用的是SmartChineseAnalyzer,但是扩展性比较差不能自定义扩展中文词库,所以这里选择使用IKAnalyzer,这是第三方的一个分词器可以很好的扩展中文词库

1.下载ik相关jar包,下载链接如下:
https://pan.baidu.com/s/17fjdD6ha63uG6fGRl12lcg
2.将jar包复制到下面目录中
在这里插入图片描述
3.将下面代码

<fieldType name="text_ik" class="solr.TextField"> 
	<analyzer type="index">
		<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" conf="ik.conf" useSmart="false"/>
		<filter class="solr.LowerCaseFilterFactory"/> 
	 </analyzer> 
	 <analyzer type="query"> <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" conf="ik.conf" useSmart="true"/> 
	 	<filter class="solr.LowerCaseFilterFactory"/> 
	 </analyzer> 
 </fieldType>

复制到以下目录的managed-schema中
在这里插入图片描述
4.cmd中重启solr
打开网址http://localhost:8983/solr 如下:
在这里插入图片描述

发布了45 篇原创文章 · 获赞 6 · 访问量 1170

猜你喜欢

转载自blog.csdn.net/qq_41219586/article/details/103745277
今日推荐