一、Solr简介

        Apache Solr是一个功能强大的搜索服务器,它支持REST风格API。Solr是基于Lucene的,Lucene 支持强大的匹配能力,如短语,通配符,连接,分组和更多不同的数据类型。它使用 Apache Zookeeper特别针对高流量进行优化。

二、工具

Postman:发送post请求的http客户端,官网地址:https://www.getpostman.com/

IKAnalyzer:中文分词器,jar包下载地址:https://search.maven.org/search?q=com.github.magese

三、Solr的下载与安装

1.Solr官网下载:http://lucene.apache.org/solr/downloads.html   或者   http://apache.fayea.com/lucene/solr/

2.下载后解压,结构如下:

3.执行solr,指定端口为8888。命令如下:

4.访问http://localhost:8888/solr/,进入Admin UI界面验证是否成功。如图:

5.Solr常用命令

./solr start –p 端口号       // 单机版启动solr服务

./solr restart –p 端口号   // 重启solr服务

./solr stop –p 端口号      // 关闭solr服务

./solr stop -all                 // 关闭所有solr服务

./solr status                    // 查看solr状态

./solr create –c name    // 创建一个core实例(core概念后面介绍)

注:

      此外有关于solr集群版启动方式和其他更多的命令可以参看官方文档https://lucene.apache.org/solr/guide/

6.Admin UI界面,创建core。出现

解决:

     1)在创建new_core文件夹,如图:

     2)将configsets下的conf文件夹,拷贝到new_core文件夹中,如图:

   3)再在Admin UI界面创建c7ore,成功。如图:

四、配置schema

1.找到managed-schema配置文件,如图:

2.添加配置text_ik,如下配置:

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

3. 解析schema主要成员:

  1) fieldType:为field定义类型,最主要作用是定义分词器,分词器决定着如何从文档中检索关键字。

  2)analyzer:fieldType下的子元素,这就是传说中的分词器,他由一组tokenizer和filter组成

  3)field:创建索引用的字段,若想要这个字段生成索引需要配置他的indexed属性为true,stored属性为true表示存储该索引。

4.根据API,用postman测试,API地址:https://lucene.apache.org/solr/guide/8_1/schema-api.html#modify-the-schema

五、中文分词器

1.将jar包放入WEB-INF的lib中,如图:

2.在WEB-INF下创建classes,并将文件放入。如图:

3.选择分词

4.测试分词,打开ADMIN UI界面,操作如图:

五、SolrJ(Java客户端)

1.添加maven依赖

<!-- solr -->
<dependency>
    <groupId>org.apache.solr</groupId>
    <artifactId>solr-solrj</artifactId>
    <version>8.1.1</version>
</dependency>

2.在项目中使用,请参考SolrJ官方文档

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐