solr-7.72搜索引擎服务搭建

solr搜索引擎服务搭建

       点关注不迷路,欢迎再来!

精简博客内容,尽量已专业术语来分享。
努力做到对每一位认可自己的读者负责。
帮助别人的同时更是丰富自己的良机。

最近因业务需要,废弃传统关系型数据库查询,为提高搜索效率先需要使用solr来实现全文搜索引擎。话不多说,先来部署下solr服务。

一. Solr介绍
Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr可以独立运行在Jetty、Tomcat等这些Servlet容器中。

Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

使用Solr 进行创建索引和搜索索引的实现方法很简单,如下:

  • 创建索引:客户端(可以是浏览器可以是Java程序)用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr服务器根据xml文档添加、删除、更新索引 。

  • 搜索索引:客户端(可以是浏览器可以是Java程序)用 GET方法向 Solr 服务器发送请求,然后对Solr服务器返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建页面UI的功能,但是Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。

二. Solr环境部署
环境:jdk 1.8 + window10 64位

下载地址http://lucene.apache.org/solr/,解压后会获得一个solr-7.7.2文件夹
在这里插入图片描述

bin: solr的运行脚本
contrib : solr的一些贡献软件/插件,用于增强solr的功能。
dist : 该目录包含build过程中产生的war和jar文件,以及相关的依赖文件。
docs :solr的API文档
example :solr工程的例子目录
example/solr: 该目录是一个包含了默认配置信息的Solr的Core目录。
example/multicore: 该目录包含了在Solr的multicore中设置的多个Core目录。
example/webapps: 
该目录中包括一个solr.war,该war可作为solr的运行实例工程。

cmd命令行下切换到解压目录下的bin目录下,启动slor服务,启动命令为:
默认端口在8983
当然也可以用下述命令启动单机版的solr:

solr start 

也可以自定义端口:

solr start -p 8080

启动服务之后在http://localhost:8983就可以打开启动的solr服务
在这里插入图片描述
三. 创建core实例

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

  2. core创建
    core的创建方式,列出两种比较方便的。
    (1). 以管理进入cmd, 在$SOLR_HOME/bin目录下执行solr create –c ,创建一个core
    在这里插入图片描述
    执行完后,会在/server/solr 下创建一个 my_core文件夹。
    (2).在AdminUI页面创建一个core。

在这里插入图片描述
四、managed-schema(schema.xml)

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

<schema>
    <field/>
    <dynamicField/>
    <uniqueKey/>
    <fieldType>
        <analyzer>
            <tokenizer/>
            <filter/>
        </analyzer>
    </fieldType/>
    <copyField/>
    <dynamicField>
</schema>

(1) fieldType:为field定义类型,最主要作用是定义分词器,分词器决定着如何从文档中检索关键字。
(2) analyzer:他是fieldType下的子元素,这就是传说中的分词器,他由一组tokenizer和filter组成。
(3) field:他是创建索引用的字段,如果想要这个字段生成索引需要配置他的indexed属性为true,stored属性为true表示存储该索引。如下图所示每个field都要引用一种fieldType由type属性定义

五、managed-schema文件配置自定义IK分词器
下载IK分词器l链接:http://search.maven.org/#search%7Cga%7C1%7Ccom.github.magese
将下载好的jar包放入solr-7.7.2\server\solr-webapp\webapp\WEB-INF\lib目录中
在这里插入图片描述

<!-- ik分词器 -->
<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>

配置完成后再次重启一次solr服务
选择mycore -> Analysis -> 选择分词器 text_ik 输入 “我是从事Java开发工作”
点击"Analyse Values"按钮可以看到结果已经分词成功了。
在这里插入图片描述
六、springboot集成solr
https://blog.csdn.net/qq_39443053/article/details/96179656

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值