【Solr】之安装以及使用管理控制台增删改查操作-3(上)

简介: 【Solr】之安装以及使用管理控制台增删改查操作-3

一、Solr概述


1.1 概述


Solr 是一个基于 Apache Lucene 之上的搜索服务器,它是一个开源的、基于 Java 的信息检索库。它旨在驱动功能强大的文档检索应用程序 - 无论您需要根据用户的查询将数据服务到何处,Solr 都可以为您服务。Solr与应用程序的集成以为您服务。

下面是一个如何将 Solr 集成到应用程序中的示例


在上述情况下,Solr 与其他服务器应用程序并行运行。例如,在线商店应用程序将提供用户界面、购物车以及为最终用户购买的方式;而库存管理应用程序将允许商店员工编辑产品信息。产品元数据将保存在某种数据库以及 Solr 中。

Solr的官网: http://lucene.apache.org/solr/


1.2 特点


Solr是一个高性能,采用Java开发,

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

在Lucene 主要有个算法被为

倒排索引:使用关键字去搜索文档

正排索引:使用文档的Id 去查询文档,对比文档里面有没有该关键字

倒排索引:就是利用一个Map 集合搞定

Map<String,List> 这个速度快

正排索引:扫描全表,做个匹配而已


1.3 工作方式


文档通过Http利用XML或者json 加到一个搜索集合中。

查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等


1.4 SolrCloud与Solr,lucene关系

1.4.1 solr与luence的关系


网上有这样的比喻:

(1) lucene是数据库的话,solr就是jdbc

(2) lucene是jar,solr就是一个引用这些jar来写的搜索客户端。Solr是一个可以直接用的应用,而lucene只是一些编程用的库。


1.4.2 Solr与SolrCloud

SolrCloud是Solr4.0版本开发出的具有开创意义的基于Solr和Zookeeper的分布式搜索方案,或者可以说,SolrCloud是Solr的一种部署方式。Solr可以以多种方式部署,例如单机方式,多机Master-Slaver方式,这些方式部署的Solr不具有SolrCloud的特色功能。


二、Solr的安装


2.1 安装前的概述

1.1,solr是基于lucene而lucene是java写的,所以solr需要jdk----当前安装的solr-7.5需要jdk-1.8及以上版本,下载安装jdk并设置JAVA_HOME即可。

1.2,下载solr,然后解压即可,windows和linux都可以下.tgz(.tgz本质是.tar.gz)和.zip解压出来都一样的。

1.3,在solr5以前solr的启动都有tomcat作为容器,但是从solr5以后solr内部集成jetty服务器,可以通过bin目录中脚本直接启动。就是从solr5以后跟solr4最大的区别是被发布成一个独立的应用。

1.4,在solr5之后solr其实特别容易安装,有安装包,之后在解压,直接启动bin下solr,solr就这样完成的启动了。。


2.2 准备工作


1,安装Docker

2,安装vim

3,安装jdk

搜索

yum -y install java-1.8.0-openjdk

3.安装solr

1.下载solr
https://lucene.apache.org/solr/
2. wget https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/7.7.2/solr-7.7.2.tgz

2.3 安装

2)解压solr并移动到/usr/local
3)启动solr
进入solr目录
(1)bin:是脚本的启动目录
(2)contrib:Solr 的contrib目录包含 Solr 专用功能的附加插件目录
(3)dev-tools:跟开发工具相关的包
(4)dist:编译打包后存放目录,即构建后的输出产物存放的目录
(5)docs:solr文档的存放目录
(6)example:示范例子的存放目录,这里展示了DIH,即数据导入处理的例子
(7)server:  此目录是 Solr 应用程序的核心所在。此目录中的 README 提供了详细的概述,但以下是一些特点:
Solr 的 Admin UI(server/solr-webapp)
Jetty 库(server/lib)
日志文件(server/logs)和日志配置(server/resources)。有关如何自定义 Solr 的默认日志记录的详细信息,请参阅配置日志记录一节。
示例配置(server/solr/configsets)
进入bin目录
bin目录分析 
1.1、solr和solr.cmd:
分别是用于* nix系统和Windows系统,根据所选参数不同而控制solr的启动和停止。
1.2、solr.in.sh和solr.in.cmd:
这些是分别用于* unix和Windows系统的属性文件。
1.3、install_solr_services.sh:
此脚本用于* unix系统将Solr作为服务安装
开机自启自动

20200713103155357.png

出现以上问题可以修改启动代码

./solr start -force


20200713103219956.png

启动成功


2.4 测试访问


http://ip:8983/solr/

20200713103702835.png


2.5 启动失败

2.5.1 VM 因为你的虚拟机的防火墙没有关闭


查看防火墙状态

firewall-cmd --state

1

停止firewall

systemctl stop firewalld.service

1

禁止firewall开机启动

systemctl disable firewalld.service


2.5.2 阿里云 对外端口8983 添加安全组


登录官网控制台ECS 添加安全组入方向规则


三、Solr的名词解释及配置文件说明

3.1 索引库


我们导入数据,solr 会被它以某种格式保存在索引库里面!

刚安装的现在没有任何索引库


3.2 索引分词


Solr在导入数据库时,会对某些语句进行分词


3.3 搜索分词


Solr在搜索数据库时,会对某些语句进行分词


3.4 文档


Solr 里面搜索出来的每个数据,都是以xml 文件或json 来表示,这些数据被称为文档

Json->文档

Xml->文件


3.5 字段


文档里面可能有很多的字段,就类似于数据库的字段


3.6 和Mysql的数据库做对比


20200713104559916.png


3.7 配置文件说明


在 Solr 中有几个配置文件,您将在执行过程中与之交互。

这些文件中的很多都是 XML 格式的,尽管与配置设置交互的 API 在需要时往往接受 JSON 以进行编程访问。


3.7.1 Solr Home


在运行 Solr 时,您需要访问主目录。

当您第一次安装 Solr 时,您的主目录是:server/solr。

Solr 主目录包含重要的配置信息,并且是 Solr 将存储其索引的地方。

以下示例显示了 Solr 主目录中的关键部分:

<solr-home-directory>/
   solr.xml
   core_name1/
      core.properties
      conf/
         solrconfig.xml
         managed-schema
      data/
   core_name2/
      core.properties
      conf/
         solrconfig.xml
         managed-schema
      data/


3.7.2 Solr 配置文件


在 Solr 的目录中,你会发现这些文件:

solr.xml:为您的 Solr 服务器实例指定配置选项。

每个 Solr core:

core.properties:为每个核心定义特定的属性,例如其名称、核心所属的集合、模式的位置以及其他参数。

solrconfig.xml:控制高级行为。例如,您可以为数据目录指定一个备用位置。

managed-schema(或用 schema.xml 替代)描述您将要求 Solr 索引的文档。模式将文档定义为字段集合。您可以同时定义字段类型和字段本身。字段类型定义功能强大,包含有关 Solr 如何处理传入字段值和查询值的信息。

data/:包含索引文件的目录。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
Java 数据库 数据安全/隐私保护
基于JavaSE+JDBC使用控制台操作的简易购物系统【源码+数据库】
基于JavaSE+JDBC使用控制台操作的简易购物系统【源码+数据库】
|
4月前
|
JavaScript
通过控制台安装vue项目
通过控制台安装vue项目
|
2月前
IntelliJ IDEA 自定义控制台输出多颜色格式功能 --- 安装Grep Console插件
IntelliJ IDEA 自定义控制台输出多颜色格式功能 --- 安装Grep Console插件
|
6月前
|
存储 SQL 监控
【EMQX】EMQX管理控制台即EMQX Dashboard简介
【EMQX】EMQX管理控制台即EMQX Dashboard简介
395 0
|
10天前
|
消息中间件 存储 数据库
RabbitMQ入门指南(二):架构和管理控制台的使用
RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了RabbitMQ架构和管理控制台的使用等内容。
32 0
RabbitMQ入门指南(二):架构和管理控制台的使用
|
24天前
|
存储 Java 关系型数据库
不同主题增删改查系统【控制台+MySQL】(Java课设)
不同主题增删改查系统【控制台+MySQL】(Java课设)
13 0
|
5月前
|
消息中间件 关系型数据库 MySQL
消息中间件系列教程(05) -RabbitMQ -管理控制台的使用
消息中间件系列教程(05) -RabbitMQ -管理控制台的使用
26 1
|
7月前
|
Linux 开发工具 数据安全/隐私保护
Linux基础操作2(常用基础命令,控制台操作)
Linux基础操作2(常用基础命令,控制台操作)
61 0
Linux基础操作2(常用基础命令,控制台操作)
|
9月前
WAF3.0管理控制台
WAF3.0管理控制台
137 1
|
11月前
|
Python
Python 控制台操作的文字版“数独”游戏(非GUI版本)
Python 控制台操作的文字版“数独”游戏(非GUI版本)
159 0