一、开篇一点概念

最近想深入研究下solr,顺便记录一些知识点,以供后来者。

1.Solr是什么东西

Solr是一种开放源码的、基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中。
Solr 提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式(包括XML/XSLT 和JSON等格式)。
它易于安装和配置,而且附带了一个基于HTTP 的管理界面。

2.Solr的特性包括

高级的全文搜索功能
专为高通量的网络流量进行的优化
基于开放接口(XML和HTTP)的标准
综合的HTML管理界面
可伸缩性-能够有效地复制到另外一个Solr搜索服务器
使用XML配置达到灵活性和适配性
可扩展的插件体系

OK以上这些,大家百度一下就可以找到相关,这里我不想说太多概念,不想写太多文字,大家也耐不下心来看。

那么上面提到了Lucene,它是一个基于Java的全文信息检索工具包,是Apache Jakarta家族中的一个开源项目,那么问题来了,solr和Lucene到底是什么关系呢?

这个问题很好解释,这就好比我们常用的数据库,我们所熟知的sql语句就好比solr,而数据库底层根据sql语句去做相应的动作处理,这就是Lucene做的事情,这样想就浅显的多了是吧。

当然了solr所做的事情远不止那么简单,其中还涉及各种乱七八糟的处理,看看下面这张图我从网上盗来的图,你就可以了解个大概了。

下面开始介绍最基本的搭建:

本文以solr-4.10.4版本为例,介绍solr的基本搭建会真的在tomcat和solr自身携带的web服务来部署运行solr

二、tomcat上部署solr

1、首先到apache下载solr,以下是地址:

http://mirrors.hust.edu.cn/apache/lucene/solr/

2、解压出solr-4.10.4

3、拷贝solr-4.10.4\example\webapps文件夹中的solr.war文件到tomcat安装目录中的webapps文件夹下,我这里使用的tomcat版本是apache-tomcat-7.0.11

4、运行tomcat。怎么运行呢…不用讲了吧!相信来看这篇帖子的人都知道tomcat怎么启动,tomcat启动后会自动解压solr.war文件。

5、启动完毕后,会生成文件夹solr,然后删除solr.war文件。(不然每次启动tomcat都会发布一次)

6、回到tomcat的webapps目录下,打开solr\WEB-INF\web.xml文件。

在web-app节点中加入以下代码,目录可根据实际情况自行决定:

<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>D:\solrhome</env-entry-value> <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

如上代码,需要在D盘新建一个文件夹:solrhome
这种配置有一个弊端,不方便打包,需打包前根据要部署的环境修改,当然还有其他配置方式,这里就不列举了。

7、回到解压的solr-4.10.4目录,打开文件夹:solr-4.10.4\example\solr,复制所有内容到D:\solrhome,那么这个solrhome其实就是solr的根目录,solr在启动的时候会取这个根目录下加载配置信息。

8、打开文件夹:solr-4.10.4\example\lib\ext,复制所有jar包到tomcat的webapps\solr\WEB-INF\lib下。

9、运行web:http://localhost:8088/solr,将看到如下画面:

10、在D:\solrhome目录下,新建一个mycore文件夹。

11、在解压的solr-4.10.4\example\multicore\core0目录中,复制其中的内容到D:\solrhome\mycore中。

15、在solr web page中新建core:

16、重启tomcat。(如何重启,忽略)

17、回到解压的solr-4.10.4目录,打开文件夹:solr-4.10.4\example\solr\collection1文件夹中的东西全部拷贝到D:\solrhome\mycore文件夹中,刚才复制的这部分东西,都是solr根目录的一些基本配置信息。

18、编写配置文件,将数据库中的数据映射到solr中,在D:\solrhome\mycore\conf下创建一个文件data-config.xml,写入以下内容:

<dataConfig><dataSource type="JdbcDataSource"driver="org.postgresql.Driver"url="jdbc:postgresql://10.8.12.210/db_test"user="user_test"password="user_test" /><document><entity name="solr_test" transformer="DateFormatTransformer"query="select id,address,area,birthday,local_real_name,mobile from t_mem_personal_data WHERE id >= ${dataimporter.request.id}"></entity></document>
</dataConfig>

这里的id >= ${dataimporter.request.id}是指可以传入参数。

还有一个问题要注意,select后面你要引入进来的这些字段名,必须响应的在schema.xml文件中编写fields,schema.xml中预设了一些fields,但并不全面,详细的可以自己去查看,我后面的文章也会讲到。

然后打开D:\solrhome\mycore\conf下的solrconfig.xml,添加如下代码

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

配置使用到的JAVA库文件
到solr-4.10.4\dist下,拷贝solr-dataimporthandler-4.10.4.jar到tomcat的webapps\solr\WEB-INF\lib中,这个jar包是为了将库导入solr。

另外还需要引入数据库的驱动,否则solr读不到数据库的数据,这里因为我使用的是postgresql,所以我下载了一个这个postgresql-9.2-1004-jdbc4.jar包,同样放到webapps\solr\WEB-INF\lib中。

然后重启solr。

18、然后将我们数据库表中的数据导入到solr中来,操作如下:

19、上面文件配置好后,其实就是配置的D:\solrhome\mycore\conf\solrconfig.xml中配置的data-config.xml,你可以去参照你拷贝过来的时候的初始的样子,然后再来对比,修改后的样子,就知道了,data-config.xml这个文件是根据你的配置自动生成的。

通过点击这两个按钮将数据刷到solr中去。

20、可以通过点击下面的按钮或者在浏览器中输入红框中的连接来得到请求的数据,请求数据的格式也是可以修改的。

三、使用solr自带的web服务部署运行solr
1、打开解压的solr-4.10.4\example下面有一个start.jar文件,打开命令行定位到这个目录下,执行如下代码:

java -jar start.jar

运行完后查看solr-4.10.4\example\solr-webapp下产生了一个webapp文件夹。

2、 打开web.xml文件,文件位于:solr-4.10.4\example\solr-webapp\webapp\WEB-INF

加入这段xml到web-app内:

<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>D:\solr-4.10.4\example\solr</env-entry-value> <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

其中,env-entry-value的值就是跟上面讲到的solrhome相同意思了。

事实上,这里的这个目录就是tomcat中webapps下的solr了,把solr-4.10.4\example\lib\ext,复制所有jar包到tomcat的webapps\solr\WEB-INF\lib下。

3、启动solr。回到第1步,目录:solr-4.10.0\example,运行命令:

如果你出现如下情况:

请检查你的jdk版本,可能是你本地的jdk版本跟本start.jar打包的版本不兼容。

在解压的solr-4.10.4\SYSTEM_REQUIREMENTS.txt中有如下描述:

这里建议这个版本运行在java7或者更高版本上。

4、ok,如果启动成功之后,那么浏览器输入地址加端口号,就可以打开solr的管理界面了,后续操作同上,下面是默认请求地址。

http://localhost:8983/solr/

如果要创建一个新的solr,只需要重复上面的第15步就可以了,记得重启。

本文仅介绍了基本的环境搭建,后续会就其中的各种配置文件如何配置,其中各种参数的意思进行详细的阐述,ok,就酱!

Solr基础教程之环境搭建(一)相关推荐

  1. Jetson Xavier NX学习笔记(三)系统烧录+开机教程+YOLOv7环境搭建+错误总结(详细版)

    Jetson Xavier NX 系统烧录+开机教程+YOLOv7环境搭建+错误总结(详细版) 文章目录 Jetson Xavier NX 系统烧录+开机教程+YOLOv7环境搭建+错误总结(详细版) ...

  2. 深度学习图像识别:基础知识与环境搭建

    深度学习图像识别:基础知识与环境搭建 1. 深度学习的基本原理 什么是人工智能? 通过学习掌握了某中技能的机器,我们认为它具备了人工智能 什么是深度学习? 深度学习的概念源于人工神经网络的研究: 含多 ...

  3. C语言零基础入门——1.基础知识与环境搭建。

    C语言零基础入门--1.基础知识与环境搭建. 好了.终于迎来了第一篇文章,这篇文章要做的事情非常简单,主要有三个事情 ​ 第一:C语言的介绍. ​ 第二:计算机的基础知识. ​ 第三:C语言的环境安装 ...

  4. Python数据分析高薪实战第一天 python基础与项目环境搭建

    开篇词 数据赋能未来,Python 势不可挡 你好,我是千帆. 互联网公司从红利下的爆发期,进入新的精细化发展阶段,亟须深入分析与挖掘业务与数据价值,从而找到新的增长点突破现有增长瓶颈.各行各业的数据 ...

  5. 【Java基础】Java环境搭建

    文章目录 一.前期准备 1. 基础知识 2. 软件 二.安装 1. JDK安装 2. 配置环境变量 三.总结 一.前期准备 1. 基础知识 JVM:Java Virtual Machine,也就是Ja ...

  6. 谷粒商城项目篇1_分布式基础篇_分布式基础概念、环境搭建、创建项目

    写在前面 为丰富项目经验,特此学习B站开源视频<全网最强电商教程<谷粒商城>对标阿里P6/P7,40-60万年薪>希望通过此学习能巩固所学,将技术栈串接起来. 此项目三个阶段 ...

  7. 安装目录opencv for android 教程(环境搭建篇)

    这几周朋友几篇文章介绍了改安装目录的文章. 关联文章的地址 最近android开发异常炽热,随着手机性能越来越高,图像处程序也越来越重要, 由于opencv for android 网上教程大多为英文 ...

  8. Maven基础:Maven环境搭建及基本使用(1)

    1. Maven环境搭建 1.1 Maven简介 1.2 Maven下载及环境设置 Maven下载地址:http://maven.apache.org/download.cgi 当前下载版本:apac ...

  9. python从零开始基础入门——开发环境搭建

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:山海皆可平z PS:如有需要Python学习资料的小伙伴可以加点击下方 ...

最新文章

  1. Java项目:新闻发布系统(java+Springboot+ssm+mysql+maven)
  2. 线程安全(中)--彻底搞懂synchronized(从偏向锁到重量级锁)
  3. .NET (C#) Internals: ASP.NET 应用程序与页面生命周期——吴秦(Tyler)
  4. ASP.NET 验证码示例
  5. 【Web安全】先进技术WebSocket下安全测试
  6. 10.10SSD安装盘clover 下开启trim功能
  7. 你对webpack了解多少?
  8. labelme 语义分割数据集_RangeNet++: 快速精确的雷达数据语义分割(IROS 2019)
  9. 搞定客户端证书错误,看这篇就够了
  10. 重启服务器导致网站系统错误,win10怎么总是莫名其妙重启?_网站服务器运行维护...
  11. [转载]c#委托事件简单例子
  12. 乐思启慧教学系列—Bootstrap布局规则
  13. 状态压缩DP-棋盘模型总结
  14. linux命令行工具大全,七款极为实用的Linux命令行工具
  15. 计算机网络管理员基础知识,计算机网络管理员(基础知识)
  16. 印章-公司印章制作生成器
  17. 百度网盘打不开的问题的解决
  18. Python爬虫--- 1.5 爬虫实践: 获取百度贴吧内容
  19. Scratch(五十一):端午节抛粽子
  20. 解决PPT不能插入页码问题

热门文章

  1. VS Visual Studio 魔兽插件开发工具 AddOn Studio for WOW 1 0 含有LUA编辑
  2. ML基础 - 深度神经网络中解决过拟合的方法
  3. CSS学习(四)—— 边框与圆角
  4. VirtualBox 安装 Ubuntu虚拟机 显卡驱动
  5. 基于excel数据绘制饼图
  6. 图解虚拟私有云 VPC
  7. 勒索病毒场景模拟及原理
  8. 利用Python库,把Python当PS用!
  9. 【现代机器人学】学习笔记五:逆运动学(Inverse kinematics)
  10. 【游戏开发实战】小岛城堡里的常春藤,听新发剖析Unity案例知识点