【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作为服务安装
开机自启自动

【Solr】之安装以及使用管理控制台增删改查操作-3出现以上问题可以修改启动代码 ./solr start -force【Solr】之安装以及使用管理控制台增删改查操作-3启动成功

2.4 测试访问

http://ip:8983/solr/
【Solr】之安装以及使用管理控制台增删改查操作-3
在这里插入图片描述

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的数据库做对比

【Solr】之安装以及使用管理控制台增删改查操作-3
在这里插入图片描述

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/:包含索引文件的目录。

四、Solr索引库说明及创建

4.1 solr管理页面去创建【不推荐!!!】

1.使用solr管理页面去创建【不推荐!!!】 2.打开solr的管理页面 3.点击add Core name:自定义名字 建议和instanceDir目录保持一样 instanceDir:实例名称  一般和name一样 dataDir:默认的默认数据存储目录  一般data config  指写配置文件  db1-core/conf/solrconfig.xml schema:指定属性的xml 默认为db1-conre/conf/managed-schema文件【Solr】之安装以及使用管理控制台增删改查操作-34.但是会报错!!!!!!!!!!!!!!!!查看usr/local/server/solr/ 5.解决问题:进入db1-core这个目录发现里面啥都没有

执行下面的命令解决默认配置问题不存在的问题
cp -r ../configsets/sample_techproducts_configs/* ./

回到solr管理台 add core

4.2 命令创建【推荐】

1.进入solr的/bin目录 2.执行创建命令

./solr create_core -c  db2-core -force

3.查看server/solr/ 4.页面查看

五、Solr控制台说明-主面板

5.1,Dashboard(仪表盘)

访问 http://www.leige.plus:8983/solr时,出现该主页面,可查看到solr运行时间、solr版本,系统内存、虚拟机内存的使用情况 这里的图片描述

5.2.Logging(日志)

显示solr运行出现的异常或错误

5.3.Core Admin (core管理)

主要有Add Core(添加核心), Unload(卸载核心),Rename(重命名核心),Reload(重新加载核心),Optimize(优化索引库) Add Core是添加core:主要是在instanceDir对应的文件夹里生成一个core.properties文件

name:给core起的名字;instanceDir:与我们在配置solr到tomcat里时的solr_home里新建的core文件夹名一致;dataDir:确认Add Core时,会在new_core目录下生成名为data的文件夹 config:new_core下的conf下的config配置文件(solrconfig.xml) schema: new_core下的conf下的schema文件(schema.xml)

确认Add Core时,会在new_core下生成data文件夹,与core.properties文件。core.properties文件里内容如下:前面已说过

5.4.Java Properties

可查看到Java相关的一些属性的信息

六、Schema【—solr/db2-core/conf/】

【Solr】之安装以及使用管理控制台增删改查操作-3
在这里插入图片描述

6.1 添加一个field

【Solr】之安装以及使用管理控制台增删改查操作-3添加完成之后查managed-schma多一个属性 相当于给数据库里面的某一个表添加了一个叫goods_name和字段【Solr】之安装以及使用管理控制台增删改查操作-3

6.2 添加一个动态的field

【Solr】之安装以及使用管理控制台增删改查操作-3添加完成之后查managed-schma多一个属性【Solr】之安装以及使用管理控制台增删改查操作-3

6.3 添加一个动态的copyfield

添加一个goods_keywords【Solr】之安装以及使用管理控制台增删改查操作-3【Solr】之安装以及使用管理控制台增删改查操作-3【Solr】之安装以及使用管理控制台增删改查操作-3【Solr】之安装以及使用管理控制台增删改查操作-3

七、Document和Query

因为上面添加了goods_name  和goods_remark的属性现地相当于有一个solr的数据库里面有一个表叫db2-core  这个表里面现在自己加了goods_name和goods_remark的两个字段

7.1 向库里面增加数据

【Solr】之安装以及使用管理控制台增删改查操作-3
在这里插入图片描述

7.2 根据ID删除

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

7.3 查询数据

【Solr】之安装以及使用管理控制台增删改查操作-3Request-Handler(qt): q: 查询字符串(必须的)。:表示查询所有;keyword:吕布 表示按关键字“吕布”查询

fq: filter query 过滤查询。使用Filter Query可以充分利用Filter Query Cache,提高检索性能。作用:在q查询符合结果中同时是fq查询符合的(类似求交集),例如:q=mm&fq=date_time:[20081001 TO 20091031],找关键字mm,并且date_time是20081001到20091031之间的。sort: 排序。格式如下:字段名 排序方式;如advertiserId desc 表示按id字段降序排列查询结果。start,rows:表示查回结果从第几条数据开始显示,共显示多少条。fl: field list。指定查询结果返回哪些字段。多个时以空格“ ”或逗号“,”分隔。不指定时,默认全返回。【Solr】之安装以及使用管理控制台增删改查操作-3df: default field默认的查询字段,一般默认指定。Raw Query Parameters:

wt: write type。指定查询输出结果格式,我们常用的有json格式与xml格式。在solrconfig.xml中定义了查询输出格式:xml、json、Python、ruby、PHP、phps、custom。indent: 返回的结果是否缩进,默认关闭,用 indent=true | on 开启,一般调试json,php,phps,ruby输出才有必要用这个参数。【Solr】之安装以及使用管理控制台增删改查操作-3hl: high light 高亮。hl=true表示启用高亮 hl.fl :用空格或逗号隔开的字段列表(指定高亮的字段)。要启用某个字段的highlight功能,就得保证该字段在schema中是stored。如果该参数未被给出,那么就会高 亮默认字段 standard handler会用df参数,dismax字段用qf参数。你可以使用星号去方便的高亮所有字段。如果你使用了通配符,那么要考虑启用 hl.requiredFieldMatch选项。hl.simple.pre:hl.requireFieldMatch: 如果置为true,除非该字段的查询结果不为空才会被高亮。它的默认值是false,意味 着它可能匹配某个字段却高亮一个不同的字段。如果hl.fl使用了通配符,那么就要启用该参数。尽管如此,如果你的查询是all字段(可能是使用 copy-field 指令),那么还是把它设为false,这样搜索结果能表明哪个字段的查询文本未被找到 hl.usePhraseHighlighter:如果一个查询中含有短语(引号框起来的)那么会保证一定要完全匹配短语的才会被高亮。hl.highlightMultiTerm:如果使用通配符和模糊搜索,那么会确保与通配符匹配的term会高亮。默认为false,同时hl.usePhraseHighlighter要为true。【Solr】之安装以及使用管理控制台增删改查操作-3


原文始发于微信公众号(Coding路人王):【Solr】之安装以及使用管理控制台增删改查操作-3

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/147862.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!