当前位置:首页 > 服务端 > Solr专题(一)手把手教你搭建Solr服务

Solr专题(一)手把手教你搭建Solr服务

2022年11月09日 08:32:20服务端10

一、Solr是什么,能解决什么问题?

Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。

简而言之就是在项目中可以作为搜索引擎,提供资源的高效查询。

Q:数据库不是能提供查询的接口吗?为什么要用额外的框架来做?

A:因为模糊查询不能使用数据库的索引,所以数据库提供的模糊查询效率很低。而Solr本身也可以看做是数据库(no sql)类似于MongoDB存文档数据的菲关系型数据库。许多大型网站的搜索引擎绝不是通过查询数据库来做的,而是由Solr、Elasticsearch 这样的全文检索框架来负责。

二、同类型产品比较

全文检索框架还有ElasticSearch,它们两者之间的区别如下:

  • Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能;
  • Solr 支持更多格式的数据,而 Elasticsearch 仅支持json文件格式;
  • Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高级功能多有第三方插件提供;
  • Solr 在传统的搜索应用中表现好于 Elasticsearch,但在处理实时搜索应用时效率明显低于 Elasticsearch。
  • Solr 是传统搜索应用的有力解决方案,但 Elasticsearch 更适用于新兴的实时搜索应用。

 三、搭建服务

本例中Solr版本为7.7.2

1.下载Solr

官方下载网站: https://lucene.apache.org/solr/downloads.html

2.版本变更记录

参考博文:    https://blog.csdn.net/jiangchao858/article/details/52443745

说明:Solr从5.0.0开始内嵌jetty服务器,可直接启动,之前版本需依赖外部容器(tomcat、jetty...)中启动。

3.安装与启动

免安装,下载解压即用。

常用命令:

  • 启动:solr start
  • 停止:solr stop -p 8983
  • 重启:solr restart

启动方式:找到bin目录,在地址栏输入cmd,打开命令界面

Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

 输入solr start,使用默认端口启用jetty服务。

Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

 在浏览器输入localhost:8983/solr查看效果

Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

4、建立core

core就相当于数据库中的表,用来存放数据。

在/server/solr下新建一个文件夹,文件夹的名称就是core的名称,再将/server/solr/configsets/sample_techproducts_configs中的conf文件夹复制到新建的文件夹下。

Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

 完成后重启solr服务,再进入solr的admin界面进行添加Core

Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

 添加成功后,文件夹里会多出两个文件(data、core.properties)

Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

 进入自己建立的core进行管理:

Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

 Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

 至此,Solr服务的搭建已经成功了,接下来是运用教程。

5、导入数据

是指将数据库里面的数据导入到Solr中。

首先导入需要的jar包,将dist下的两个jar包复制到/server/solr-webapp/webapp/WEB-INF/lib文件夹下

Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

 Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

如果没有mysql驱动包的需要复制一份过来:

Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

在你自己的core里的conf下新建一个data-config.xml的配置文件。

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&amp;characterEncoding=utf-8" user="root" password="root"/>
<document name="SysUser">
	<entity name="SysUser" pk="id"
	    query='SELECT id,name,age FROM sys_suer'
	    deltaImportQuery='SELECT id,name,age FROM sys_user WHERE id = "${dataimporter.delta.id}"'
	    deltaQuery="SELECT id FROM sys_user where create_date > '${dataimporter.last_index_time}'" >
		<field column="id" name="id"/>
		<field column="name" name="name"/>
		<field column="age" name="age"/>
	</entity>
</document>
</dataConfig>
  • dataSource表示连接数据库的配置
  • document表示文档信息
  • entity表示实体信息
  •   --query表示全量导入时调用的sql语句
  •   --deltaImportQuery表示增量导入时调用的sql语句
  •   --deltaQuery表示增量导入时查出来的数据
  •   --field表示字段
  •     --column表示数据库中字段名称
  •     --name表示存在solr的core中的名称
  • ${dataimporter.last_index_time}表示最后一次导入数据的时间

具体流程:选择全量导入(全部数据导入)时调用query查询数据并导入到Solr中。选择增量导入时,先执行deltaQuery语句获得需要导入数据的id,再根据deltaImportQuery查出数据并导入到Solr中。

编辑你Core下的conf/managed-schema文件:

Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

  • indexed表示是否被索引,即是否被查询使用。
  • stored表示是否存到Solr库。
  • type表示搜索类型,当前为string类型的搜索,还可以自己配置,如IK中文分词器。

编辑core下conf/solrconfig.xml

新增以下内容

  <!-- dataimport -->
  <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">data-config.xml</str>
    </lst>
  </requestHandler>

Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

 配好之后重启solr服务,并进入admin界面

Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

 只有点击刷新状态按钮,才回刷新显示状态,出现Indexing completed则为导入完成。

Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

 

6、查询数据

 Solr专题(一)手把手教你搭建Solr服务 _ JavaClub全栈架构师技术笔记

 输入查询条件,点击执行查询,即可感受到全文检索的魅力。

下一节将会对Solr Query进行一个详细的讲解。

作者:与李
来源链接:https://blog.csdn.net/qq_37171817/article/details/105362273

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/68685.html

标签: Solr
分享给朋友:

“Solr专题(一)手把手教你搭建Solr服务” 的相关文章

官方配置solr步骤(四)---solr服务开机自启动设置(windows)

官方配置solr步骤(四)---solr服务开机自启动设置(windows)

solr开机自启动设置 1、第一种方法 自写bat文件   首先新建一个txt 文件,并更名后缀为bat ,我名字叫solrstart.bat 。在里边填写下边的内容 @echo off echo 'solr服务启动中' start "...

指尖上的电商---(3)Solr全文搜索引擎的配置

指尖上的电商---(3)Solr全文搜索引擎的配置

                   接上篇,Solr的准备工作完毕后,本节主要介绍Solr的安...

Apache Solr 安装及启动

Apache Solr 安装及启动

1.下载地址  https://lucene.apache.org/solr/ 下载解压后目录如下 bin:启动和停止服务器的脚本。example: 示例。server/logs 文件夹,所有Solr日志都写入该文件夹。server/solr文...

Solr的安装与配置

Solr的安装与配置

1.Solr安装与配置 1.1什么是Solr 大多数搜索引擎应用都必须具有某种搜索功能,问题是搜索功能往往是巨大的资源消耗并且它们由于沉重的数据库加载而拖垮你的应用的性能。 这就是为什么转移负载到一个外部的搜索服务器是一个不错的主意,Apache Solr是一个...

solr6.3安装部署

部署solr6.3到tomcat 环境 jdk1.8 tomcat9 解压Solr6.3.0到%solr%文件夹 解压得到的文件夹下做如下操作: 将%solr%/server/solr-webap...

Windows平台安装Solr并注册为服务

Windows平台安装Solr并注册为服务

Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。项目或者产品中我们经常会使用Solr提供全文检索功能。本文主要介绍如果在windows环境中安装solr以及注册为windows服务。 获取Solr安装包 从官方下载solr安装文件,s...

Solr4.10.2的Tomcat配置

Solr4.10.2的Tomcat配置

 Solr4.10.2的Tomcat配置 1.  从官网下载相应的文件并解压 Solr我使用的最新的4.10.2 Tomcat版本基本都能用,我windows上用的6.x版本,linux上配的7.x Solr地址:h...

solr安装

1.安装JDK1.5或以上 2.安装tomcat6.0或以上 3.下载、安装、配置solr:    1) 下载solr3.5, 官方下载地:http://apache.etoak.com//lucene/solr/3.5.0/  选择apach...

solr安装(集群版)

solr安装(集群版)

工具:zookeeper            solr 什么时候搭建集群? 当我们搜索系统访问量过大的时候,solr索引量过大的时候我们就需要搭建solr集群。 怎么搭建集群? 在搭建集群...

Solr介绍

Solr介绍

什么是Solr Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。 Solr可以独立运行,运行在Jett...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。