Solr7 安装部署 管理界面介绍

时间:2022-08-24 21:51:19

Solr7 安装部署 管理界面介绍

本章重点介绍CentOS 安装部署Solr7 ,Solr的管理界面介绍,添加核心Core配置,Dataimport导入数据,Documents 在线维护索引,Query复杂查询和一些常见问题处理办法。文章底部会提供笔者安装的Solr7 window版本和centos版本,仅供参考学习使用。

什么是Solr

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

这里谈到了Lucene,它是一个开放源代码的全文检索引擎工具包。提供了完整的查询引擎和索引引擎,目的是为开发人员提供工具包,以方便的在系统中实现全文检索的功能。

而Solr 的目标是打造一款企业级的搜索引擎系统,可以独立运行。并且Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

Solr7 安装部署

首先安装环境的jdk是 jdk1.8 或者更高,建议tomcat是tomcat8.0或者更高

You will need the Java Runtime Environment (JRE) version 1.8 or higher

[itdragon@localhost solr-server]$wget http://mirror.bit.edu.cn/apache/lucene/solr/7.1.0/solr-7.1.0.zip
[itdragon@localhost solr-server]$unzip solr-7.1.0.zip
[itdragon@localhost solr-server]$ls
apache-tomcat-8.5-solr solr-7.1.0
[itdragon@localhost solr-server]$mkdir -p apache-tomcat-8.5-solr/webapps/solr
[itdragon@localhost solr-server]$cd apache-tomcat-8.5-solr/webapps/solr/
[itdragon@localhost solr]$cp -r /home/itdragon/solr-server/solr-7.1.0/server/solr-webapp/webapp/* ./
[itdragon@localhost solr]$cp -r /home/itdragon/solr-server/solr-7.1.0/server/lib/ext/* ./WEB-INF/lib/
[itdragon@localhost solr]$cp -r /home/itdragon/solr-server/solr-7.1.0/server/lib/metrics*.* ./WEB-INF/lib/
[itdragon@localhost solr]$cp -r /home/itdragon/solr-server/solr-7.1.0/dist/solr-dataimporthandler-* ./WEB-INF/lib/
[itdragon@localhost solr]$cd ../../
[itdragon@localhost apache-tomcat-8.5-solr]$mkdir solrhome
[itdragon@localhost apache-tomcat-8.5-solr]$cp -r /home/itdragon/solr-server/solr-7.1.0/server/solr/* ./solrhome/
[itdragon@localhost apache-tomcat-8.5-solr]$vim webapps/solr/WEB-INF/web.xml
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>solrhome地址,pwd查看</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
<!--
<security-constraint>
......省略
</security-constraint>
-->
[itdragon@localhost apache-tomcat-8.5-solr]$cd bin/
[itdragon@localhost apache-tomcat-8.5-solr]$./startup.sh

第一步:系统环境准备:jdk版本在1.8,tomcat8.5

第二步:下载solr7,并解压在当前目录

第三步:在tomcat,webapps目录下创建solr目录,并将solr-7.1.0/server/solr-webapp/webapp/* 目录下的所有内容拷贝过去

第四步:将需要的jar导入到 WEB-INF/lib/ 下

第五步:在tomcat目录下创建solrhome(目录名自定义),并将solr-7.1.0/server/solr/* 目录下的所有内容拷贝过去

第六步:修改WEB-INF/web.xml 文件,指定solrhome的位置,并注释security-constraint 权限内容

第七步:启动tomcat,并访问http://ip:port/solr/index.html#/

注意:访问http://ip:port/solr/ 显示404,目前还没有找到原因,网上说jar没到导入,可是笔者都导入了。

看到管理页面说明安装成功

Solr7 安装部署 管理界面介绍

存在的问题

1 80端口占用

修改 tomcat/conf/server.xml 文件,更换端口号。

2 Logging页面,日志不能正常显示

[itdragon@localhost solr]$mkdir -p WEB-INF/classes
[itdragon@localhost solr]$cp /home/itdragon/solr-server/solr-7.1.0/server/resources/log4j.properties ./WEB-INF/classes/

第一步:在tomcat WEB-INF目录下创建classes目录

第二步:将solr-7.1.0/server/resources/目录下的log4j.properties文件拷贝到classes目录中,重启Solr

管理界面介绍

添加核心Core

在管理页面,点击Core Admin,选择AddCore,添加核心

Solr7 安装部署 管理界面介绍

name:自定义的名字,建议和instanceDir保持一致

instanceDir: solrhome目录下的实例类目

dataDir:默认填data即可

config:指定配置文件,new_core/conf/solrconfig.xml

schema:指定schema.xml文件,new_core/conf/schema文件(实际上是managed-schema文件)

注意!在scheme下面有一个感叹号!

instanceDir and dataDir need to exist before you can create the core

如果你不管他,直接点击Add Core 会提示 solrconfig.xml 文件找不到

Error CREATEing SolrCore 'new_core': Unable to create core [new_core] Caused by: Can't find resource 'solrconfig.xml' in classpath or '/home/itdragon/solr/apache-tomcat-8.5/solrhome/new_core'

解决方法如下

[itdragon@localhost new_core]$mkdir conf
[itdragon@localhost new_core]$cp -r /home/itdragon/solr-server/solr-7.1.0/server/solr/configsets/_default/conf/* ./conf/
[itdragon@localhost solrhome]$cp -r /home/itdragon/solr-server/solr-7.1.0/contrib/ ./
[itdragon@localhost solrhome]$cp -r /home/itdragon/solr-server/solr-7.1.0/dist/ ./
检查solrconfig.xml和contrib目录,dist目录的相对位置
<!--
<lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" />
......省略
-->
<lib dir="${solr.install.dir:../../}/contrib/extraction/lib" regex=".*\.jar" />
......省略

第一步:将solr-7.1.0/server/solr/configsets/_default/目录下的conf 拷贝到 new_core 目录下。正确的目录结构:new_core/conf/solrconfig.xml

第二步:将contrib目录,dist目录拷贝到solrhome目录中

第三步:检查solrconfig.xml文件配置的路径是否正确,重启服务

重启服务后即可正常创建Core,然后instanceDir文件夹(new_core)里会自动生成一个core.properties文件

name=new_core
config=solrconfig.xml
schema=schema.xml
dataDir=data

第二次创建core,就不用这么麻烦了,直接把第一次创建的new_core目录复制一份,修改core.properties文件中的name 即可。

在Core Selector 中选择刚创建的 new_core,会出现很多菜单。这是本章的另一个重点。重点学习的内容:Query(查询页面),Documents (索引文档),Dataimport(导入数据),Analysis(分析,下章节和中文分词一起介绍)。其他了解即可。

Dataimport(导入数据)

点击Dataimport 显示 Sorry, no dataimport-handler defined! 解决方法如下

[itdragon@localhost ~]$cd solr-server/apache-tomcat-8.5-solr/solrhome/contrib/dataimporthandler/lib
# 导入solr-dataimporthandler 和 mysql-connector-java jar包
[itdragon@localhost solrhome]$vim new_core/conf/solrconfig.xml
<lib dir="${solr.install.dir:../../}/contrib/dataimporthandler/lib" regex=".*\.jar" />
......省略
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
[itdragon@localhost solrhome]$vim new_core/conf/data-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/jpa"
user="root"
password="root"/>
<document>
<entity name="product" query="SELECT pid,name,catalog,catalog_name,price,description,picture FROM products ">
<field column="pid" name="id"/>
<field column="name" name="product_name"/>
<field column="catalog" name="product_catalog"/>
<field column="catalog_name" name="product_catalog_name"/>
<field column="price" name="product_price"/>
<field column="description" name="product_description"/>
<field column="picture" name="product_picture"/>
</entity>
</document> </dataConfig>

第一步:进入solrhome/contrib/dataimporthandler/lib 目录下,若没有lib则创建一个,导入solr-dataimporthandler-7.1.0.jar 和 mysql-connector-java-5.1.17.jar 包

第二步:修改new_core/conf/solrconfig.xml 文件,使其加载dataimporthandler/lib下的jar包

第三步:在new_core/conf/solrconfig.xml 文件底部添加DataImportHandler 内容

第四步:在new_core/conf/ 目录下创建data-config.xml(数据库配置和对应的字段),重启服务

jar包和sql文件:

https://github.com/ITDragonBlog/daydayup/tree/master/Solr/data-import-jar

如果出现下图内容则说明配置成功。

Solr7 安装部署 管理界面介绍

Command:full_import:全量导入;delta_import:增量导入。

选择 全量导入,Execute执行,Refresh Status刷新查看状态,其他都选默认即可。

Clean:在索引开始构建之前是否删除之前的索引,默认为true

Commit:在索引完成之后是否提交。默认为true

Execute:执行导入

Refresh Status:刷新后才能看到数据发生了变化(点一次刷新一次)

Documents (索引文档)

索引的增加,修改,删除相关操作。其中修改的逻辑是先删除后增加。

Solr7 安装部署 管理界面介绍

比较重要的是前三个参数

Request-Handler(qt):update(新增,更新和删除都用update)

Document Type:提交的索引文档类型,有JSON、XML等格式

Document(s):提交的索引文档内容

Commit Within:每1000毫秒执行

Overwrite:true,若文档存在则默认覆盖

删除索引:删除用json格式会出错,用xml格式后面需添加< commit/>

Solr7 安装部署 管理界面介绍

工作中,我们不可能为了个别数据去写代码修改数据,那么熟练使用Documents,对我们的工作有很大的帮助。

Query(查询页面)

查询所有价格在10到20之间的数据,并以价格降序输出商品类目名,商品标题,商品价格信息。

Solr7 安装部署 管理界面介绍

Request-Handler(qt):select查询操作

q(query):查询条件,key:value 形式,只能满足简单的查询

fq(filter query):过滤条件。对q的补充,实现复杂的查询。如:product_price:[10.0 TO 20.0] 表示价格在10~20之间。" * " 表示无限,[ * TO 20.0] 表示小于20.0

sort:对查询结果排序。如:product_price desc 表示价格降序

start,rows,开始页数,和每页多少条,简称页码

fl(field list):指定那些字段有返回值。多个值用","分隔。如:product_catalog_name,product_name,product_price

df(default field):默认域,当q查询没有key的时候,发挥作用

wt(write type):输出格式,一般都是json

hl(high light):高亮,搜索的结果若不高亮,那就没啥意义了。下一章会介绍

其他

Dashboard:

显示了该Solr实例开始启动运行的时间、版本、系统资源(物理内存,交换空间)、jvm等信息

Logging:Solr运行日志信息

Java Properties:

Solr在JVM 运行环境中的属性信息,包括类路径、文件编码、jvm内存设置等信息。

Tread Dump:

显示Solr Server中当前活跃线程信息,同时也可以跟踪线程运行栈信息。

Overview:

包含基本统计如当前文档数;和实例信息如当前核心的配置目录

Files:

在线预览solrhome/new_core/conf/* 文件或者目录

Ping:

请求来检查核心是否启动并响应请求,点击后显示响应的毫秒数

Plugins / Stats:

插件及其状态

总结

  • Solr7是基于Lucene的全文检索服务器,可以独立运行在servlet容器中
  • Solr7的安装部署需要注意 tomcat/webapps/solr 和 solrhome 两个目录
  • 创建Solr Core需要注意 solrconfig.xml文件在new_core/conf目录中
  • Query查询,q + fq 实现复杂的查询,sort排序,fl指定回显数据,hl高亮
  • Documents,支持新增,更新,删除索引文档
  • Dataimport,导入数据,需要注意配置 solrconfig.xml 文件和创建 data-config.xml 文件

安装包

solr7 window版本(有数据):链接: https://pan.baidu.com/s/1nuPSXQT 密码: nf9p

solr7 centos版本(没数据,需自己Dataimport):链接: https://pan.baidu.com/s/1mhVuE8K 密码: c4ri

到这里Solr7 的安装部署,管理界面介绍就结束了。感谢阅读!欢迎点评!!

Solr7 安装部署 管理界面介绍的更多相关文章

  1. OpenStack安装部署管理中常见问题解决方法

    一.网络问题-network 更多网络原理机制可以参考<OpenStack云平台的网络模式及其工作机制>. 1.1.控制节点与网络控制器区别 OpenStack平台中有两种类型的物理节点, ...

  2. 安装saltstack-web管理界面

    1.安装salt-master.salt-minion和salt-api $ sudo yum install epel-release -y $ sudo yum install salt-mast ...

  3. Zookeeper介绍及安装部署

    本节内容: Zookeeper介绍 Zookeeper特点 Zookeeper应用场景 用到了Zookeeper的一些系统 Zookeeper集群安装部署 一.Zookeeper介绍 是一个针对大型分 ...

  4. Dubbo:dubbo管理界面安装

    首先需要Tomcat.Zookeeper安装后在进行安装Dubbo管理界面  提供Dubbo-admin管理界面war包: https://github.com/zhaoyue123ABC/Publi ...

  5. 多实例mysql的安装和管理【验证通过】

    mysql的多实例有两种方式可以实现,两种方式各有利弊.第一种是使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便.第二种是通过官方自带的mysqld ...

  6. Storm介绍及安装部署

    本节内容: Apache Storm是什么 Apache Storm核心概念 Storm原理架构 Storm集群安装部署 启动storm ui.Nimbus和Supervisor 一.Apache S ...

  7. Apache Solr 初级教程(介绍、安装部署、Java接口、中文分词)

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  8. Azkaban介绍&plus;安装部署&plus;实战案例

    Azkaban介绍 什么是azkaban?1.工作流的作业调度系统2.通过k.v指令写法描述工作流节点3.可以通过web界面去管理工作流 Azkaban安装部署 2.3.1 准备工作 Azkaban ...

  9. supervisor的安装部署及集群管理

    supervisor的安装部署及集群管理 supervisor官网:http://www.supervisord.org/ 参考链接: http://blog.csdn.net/xyang81/art ...

随机推荐

  1. 【原生态】Http请求数据 与 发送数据

    今天项目组小弟居然问我怎么用java访问特定的地址获取数据和发送请求 Http请求都是通过输入输出流来进行操作的,首先要制定GET或者POST,默认是GET,在安全和数据量较大情况下请使用post 根 ...

  2. rpm 软件安装

    安装 vi 软件 rpm q查询 a全部软件 e 卸载 i 安装 v 显示进度 h 以#显示 首先确定软件时候安装 rpm 实现软件的安装 卸载 升级 查询等 1)查询是否已经安装过 rpm -qa ...

  3. 【图像处理】【SEED-VPM】6&period;文件目录结构

    ———————————————————————————————————————————————————————————————————————— seed-vpm6467 \ Hardware Tes ...

  4. SQL对字符串数组的处理详解

    原文地址:SQL字符串数组操作文章出处:DIY部落(http://www.diybl.com/course/7_databases/sql/sqlServer/2007106/76999.html) ...

  5. 由验证码和session丢失的引发原因

    今天中午,突然完整验证码全部不能显示了,查看gd库是没问题的,然后发现网站登录不上,追查变天,无果. 然后两个小时过后,可能是网站压力小了,网站又恢复正常. 但是过一阵又来. 其实很明显不是代码的问题 ...

  6. 目前主流的国产WebApp框架

    1.FrozenUI:QQ 2.WeUI:WeChat 3.SUI:Taobao

  7. 【leetcode❤python】 290&period; Word Pattern

    #-*- coding: UTF-8 -*-class Solution(object):    def wordPattern(self, pattern, str):        "& ...

  8. SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-009-用SPEL给bean运行时注入依赖值

    1.When injecting properties and constructor arguments on beans that are created via component-scanni ...

  9. ERROR 1114 &lpar;HY000&rpar;&colon; The table &&num;39&semi;adv&lowbar;date&lowbar;tmp&&num;39&semi; is full(Mysql临时表应用)

    场景:需要对现在数据库的数据进行批量的进行is_del=1的操作,但是遇到一个问题,在执行sql的时候发现sql不能在查询特定表的时候再嵌套查询来做update的操作,经过讨论,后续我们想到用临时表的 ...

  10. CentOS-6&period;4-i386硬盘安装

    由于安装程序不能识别NTFS分区上的镜像,因此需要变通,网上可参考的文章分为两种方法: 1.使用分区工具创建EXT分区,再用Windows下可访问EXT分区的软件,将安装镜像拷入进行安装. 2.使用分 ...