热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS7.5Linux搭建全文检索Solr7.4.0单机服务

一.Solr安装环境1.官方参考文档Solr教程参考指南:http:lucene.apache.orgsolrguide7_4solr-tutorial.html2.

一.Solr安装环境

1.官方参考文档

Solr教程参考指南:http://lucene.apache.org/solr/guide/7_4/solr-tutorial.html

2.Solr运行环境

系统要求:Java 8+      这里我们把solr服务部署到Tomacat服务器中,Tomcat安装过程参考:https://www.cnblogs.com/frankdeng/p/9597699.html

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

3.Solr下载

 下载地址:http://archive.apache.org/dist/lucene/solr/

[admin@node21 software]$ wget http://archive.apache.org/dist/lucene/solr/7.4.0/solr-7.4.0.tgz
[admin@node21 software]$ ll
-rw-rw-r-- 1 admin admin 167346886 Jun 19 02:51 solr-7.4.0.tgz

二.Solr单机安装

1. 解压安装包

[admin@node21 software]$ tar zxvf solr-7.4.0.tgz
[admin@node21 software]$ ls solr-7.4.0
bin CHANGES.txt contrib dist docs example licenses LICENSE.txt LUCENE_CHANGES.txt NOTICE.txt README.txt server

2.部署solr到tomcat下

注意,这里因为我用的是solr7.4最新版,所以跟solr4版本要拷贝*.war文件,然后再启动tomcat解压的操作是不一样的 ,

1)复制并重命名solr目录里的server/solr-webapp/webapp文件夹到/usr/local/tomcat8/webapps/solr

[admin@node21 software]$ sudo cp -r solr-7.4.0/server/solr-webapp/webapp /usr/local/tomcat8/webapps/solr

2)拷贝solr-7.4.0\server\lib\ext 下的jar包以及lib目录下gmetric4j-1.0.7.jar和metrics开头的jar包拷贝到 tomcat8\webapps\solr 项目的WEB-INF\lib下

[admin@node21 software]$ sudo cp solr-7.4.0/server/lib/ext/* /usr/local/tomcat8/webapps/solr/WEB-INF/lib/
[admin@node21 software]$ sudo cp solr-7.4.0/server/lib/gmetric4j-1.0.7.jar /usr/local/tomcat8/webapps/solr/WEB-INF/lib/
[admin@node21 software]$ sudo cp solr-7.4.0/server/lib/metrics-* /usr/local/tomcat8/webapps/solr/WEB-INF/lib/

3)创建一个索引库solrhome

拷贝solr-7.4.0\server 下的solr文件夹到其它非中文目录下,重命名为solrhome,我是建立到了/usr/local/tomcat8/solrhome下

[admin@node21 software]$ sudo cp -r solr-7.4.0/server/solr /usr/local/tomcat8/solrhome

4)关联solr及索引库solrhome,需要修改tomcat里solr工程的web.xml文件

[admin@node21 software]$ sudo vi /usr/local/tomcat8/webapps/solr/WEB-INF/web.xml

找到如下代码,打开注释,修改自己的solrhome的路径/put/your/solr/home/here,我的是 /usr/local/tomcat8/solrhome 路径。

40

如下图:

然后到最下方,将这一段注释掉,不然会报403错误,完成后保存退出(solr4部署不用注释这个)

5)拷贝solr7.4.0\server\resources下的 log4j2.xml 到tomcat8/webapps/solr/WEB-INF\classes,如果WEB-INF下没有classes文件那么就创建一个classes文件夹 

[admin@node21 tomcat8]$ sudo mkdir -p /usr/local/tomcat8/webapps/solr/WEB-INF/classes/
[admin@node21 tomcat8]$ sudo cp -r /opt/software/solr-7.4.0/server/resources/log4j2.xml /usr/local/tomcat8/webapps/solr/WEB-INF/classes/

6)修改tomcat的bin目录下catalina.bat脚本,增加solr.log.dir系统变量,指定solr日志记录存放地址。

[root@node21 solr]# vi /usr/local/tomcat8/bin/catalina.sh
JAVA_OPTS="$JAVA_OPTS -Dsolr.log.dir=/usr/local/tomcat8/solrhome/logs"

3.启动服务 

启动tomcat,访问需要完整路径,我的是http://node21:8080/solr/index.html

4.配置solr的索引库core

1)点击Core Admin,接着点击Add Core这项,创建的instanceDir和dataDir 需存在,报错如下。(Solr里面的core就像数据库里面的一个表,用来管理索引和相关配置。)

2)在索引库目录solrhome下创建new_core目录,拷贝配置文件到new_core目录下

[admin@node21 tomcat8]$ su root
[root@node21 tomcat8]$ mkdir /usr/local/tomcat8/solrhome/new_core
[root@node21 solrhome]$ cp -r /usr/local/tomcat8/solrhome/configsets/sample_techproducts_configs/conf /usr/local/tomcat8/solrhome/new_core/

然后重启tomcat服务,重新创建core成功

5.配置IK中文分词器

项目地址:https://github.com/magese/ik-analyzer-solr7

内置的分词器不支持停用,扩展功能,ik中文分词器支持屏蔽关键词、新词汇的配置。下载地址:https://pan.baidu.com/s/1vxs98d440NSQIqjc50w1Rw,密码:9dbe

解压分词器安装包

[root@node21 software]# unzip ikanalyzer-solr6.5.zip
[root@node21 software]# lsikanalyzer-solr5 ikanalyzer-solr6.5.zip
[root@node21 software]# ls ikanalyzer-solr5/
ext.dic IKAnalyzer.cfg.xml ik-analyzer-solr5-5.x.jar solr-analyzer-ik-5.1.0.jar stopword.dic

1)将IK分词器 JAR 包拷贝到Tomcat8\webapps\solr\WEB-INF\lib下

[root@node21 ikanalyzer-solr5]# cp ik-analyzer-solr5-5.x.jar solr-analyzer-ik-5.1.0.jar /usr/local/tomcat8/webapps/solr/WEB-INF/lib/

2)将词典 配置文件拷贝到 Tomcat8\webapps\solr\WEB-INF\classes下

[root@node21 ikanalyzer-solr5]# cp ext.dic IKAnalyzer.cfg.xml stopword.dic /usr/local/tomcat8/webapps/solr/WEB-INF/classes/

3)更改在Tomcat8\solr_h\solrhome\new_core\conf找到managed-schema配置文件,末尾添加以下保存

[root@node21 ikanalyzer-solr5]# vi /usr/local/tomcat8/solrhome/new_core/conf/managed-schema

4)重启tomcat服务,测试

6. 停止服务

如果要关闭solr服务,直接关闭tomcat就可以了。

三.Solr集群版

solr集群搭建参考:https://www.cnblogs.com/frankdeng/p/9597680.html#top 

四.配置Solr服务器导入数据库数据

步骤:

(1)导包

首先是需要在solr的核心库中添加一些导入数据的包,需要如下:

 

注意:因为在collection中,最初是没有lib这个文件目录的,所以需要自己创建一个lib目录,然后把相应的jar包添加进去。

(2)在collection中的config目录下的solrconfig.xml中添加数据导入处理器

1 "/dataimport"
2 class="org.apache.solr.handler.dataimport.DataImportHandler">
3 "defaults">
4 "config">data-config.xml
5

6

(3)在collection中的config目录添加一个data-config.xml(这个与上面一步配置的名字要相同)

1 "1.0" encoding="UTF-8" ?>
2
3 "JdbcDataSource"
4 driver="com.mysql.jdbc.Driver"
5 url="jdbc:mysql://localhost:3306/需要导入数据的数据库名"
6 user="数据库账号"
7 password="数据库密码"/>
8
9 "product" query="SELECT pid,name,catalog_name,price,description,picture FROM products">
10 "pid" name="id" />
11 "name" name="product_name" />
12 "catalog_name" name="product_catalog_name" />
13 "price" name="product_price" />
14 "description" name="product_description" />
15 "picture" name="product_picture" />
16

17

18

备注:上面的内容,其实一看就大体明白了什么意思,主要就是配置要导入哪个数据库,导入的字段有什么,如果不配置的话,那么solr服务器是无法判断得到的字段的,所以需要进行配置,相当于一个映射配置。

注意:我上面的entity里面的内容就是我需要导入数据的字段的些内容,所以,根据需求进行自行匹配。

(4)在collection中config目录下的schema.xml添加如下内容:(这个是为了能够便于对导入数据库中的数据,与solr中的域进行匹配,因为我们都知道,如果solr域中不存在相应的域,那么是无法进行查询修改删除操作的,那么就不利于我们在以后的项目中对数据库相应字段的处理,所以,这一步是可有可无,但是配置了就有很多的好处)

1
2 "product_name" type="text_ik" indexed="true" stored="true"/>
3 "product_price" type="float" indexed="true" stored="true"/>
4 "product_description" type="text_ik" indexed="true" stored="false"/>
5 "product_picture" type="string" indexed="false" stored="true"/>
6 "product_catalog_name" type="string" indexed="true" stored="true"/>
7 "product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true" />
8 "product_name" dest="product_keywords" />
9 "product_description" dest="product_keywords" />

(5)重启tomcat,然后登陆solr服务

(6)进行添加数据的处理

 

 

(7)点击上面图中的Execute按钮即可进行数据的导入了,然后再进去Query就可查询到导入的数据了哦!!

或者:http://localhost:8080/solr/collection1/dataimport?command=full-import

 

五.安装过程问题 

1.警告Max Processes Limit

最大限制用户进程数,个人电脑低配,由于系统需要更改设置

查看个人最大限制用户进程数 ulimit -u

[root@node21 software]# vi /etc/security/limits.conf
末尾添加如下两行信息,保存退出,重新登录生效
* soft nproc 65535
* hard nproc 65535

或者根据官网的建议,在solr.in.sh中设置SOLR_ULIMIT_CHECKS=false 。

 

官方老版本solr整合tomcat安装过程参考: https://wiki.apache.org/solr/SolrTomcat


转载于:https://www.cnblogs.com/haw2106/p/10690563.html


推荐阅读
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 本文详细解析了 Yii2 框架中视图和布局的各种函数,并综述了它们在实际开发中的应用场景。通过深入探讨每个函数的功能和用法,为开发者提供了全面的参考,帮助他们在项目中更高效地利用这些工具。 ... [详细]
  • Maven Web项目创建时JSP文件常见错误及解决方案
    Maven Web项目创建时JSP文件常见错误及解决方案 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • CSS3 @font-face 字体应用技术解析与实践
    在Web前端开发中,HTML教程和CSS3的结合使得网页设计更加多样化。长期以来,Web设计师受限于“web-safe”字体的选择。然而,CSS3中的`@font-face`规则允许从服务器端加载自定义字体,极大地丰富了网页的视觉效果。通过这一技术,设计师可以自由选择和使用各种字体,提升用户体验和页面美观度。本文将深入解析`@font-face`的实现原理,并提供实际应用案例,帮助开发者更好地掌握这一强大工具。 ... [详细]
  • 本文将介绍如何在混合开发(Hybrid)应用中实现Native与HTML5的交互,包括基本概念、学习目标以及具体的实现步骤。 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • 本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析Spring Boot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。 ... [详细]
  • 帝国CMS中的信息归档功能详解及其重要性
    本文详细解析了帝国CMS中的信息归档功能,并探讨了其在内容管理中的重要性。通过归档功能,用户可以有效地管理和组织大量内容,提高网站的运行效率和用户体验。此外,文章还介绍了如何利用该功能进行数据备份和恢复,确保网站数据的安全性和完整性。 ... [详细]
  • FreeBSD环境下PHP GD库安装问题的详细解决方案
    在 FreeBSD 环境下,安装 PHP GD 库时可能会遇到一些常见的问题。本文详细介绍了从配置到编译的完整步骤,包括解决依赖关系、配置选项以及常见错误的处理方法。通过这些详细的指导,开发者可以顺利地在 FreeBSD 上完成 PHP GD 库的安装,确保其正常运行。此外,本文还提供了一些优化建议,帮助提高安装过程的效率和稳定性。 ... [详细]
  • Nginx作为前端服务器时,Tomcat与Apache作为后端,War包应部署在何处? ... [详细]
  • 本指南详细介绍了如何在CentOS 6.6 64位系统上以root用户身份部署Tomcat 8服务器。系统环境为CentOS 6.6 64位,采用源码安装方式。所需软件为apache-tomcat-8.0.23.tar.gz,建议将软件下载至/root/opt目录。具体下载地址请参见官方资源。本指南涵盖了从环境准备到服务启动的完整步骤,适用于需要在该系统环境下搭建高性能Web应用服务器的技术人员。 ... [详细]
author-avatar
大傻vv_528
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有