一、安装

1.1 安装jdk

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

jdk下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

1.2 安装solr

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

solr下载地址:http://lucene.apache.org/solr/downloads.html

要注意图中的链接是下载页面的链接并不是solr文件的链接,直接wget链接就报gzip: solr-7.5.0.tgz: not in gzip format或End-of-central-directory signature not found.了。

1.3 设置系统资源限制

设置最大进程数t和打开文件数为65000(可能其他一些资源也要修改但我安装时没见有其他问题,文档也没看到专门说明)

ulimit -u 65000
ulimit -n 65000

二、solr基本用法

对于没用过的新手而言,首先最关心的是怎么运行起来看这东西长什么样其他什么高级用法后而再说,这里我们就来做这件事。

2.1 启停

进入解压后文件的bin目录,执行:

# 启动
./solr start
# 停止
./solr stop

solr默认拒绝以root身份启动,root加-force选项可以启动,但后续进行操作(如创建核心等)还是会有问题,推荐使用普通用户动。

启动完成后默认监听8983端口,访问可见界面如下

2.2 solr核心(core)创建与删除

在上面启动起来的页面可以看到solr就是就是这么一个界面简陋的东西----页面简单(没几个页面)加布局丑陋。

solr中一个核心(core)相当于一个搜索引擎,然后上传文件时也是上传到指定核心;solr可以建立多个solr。solr默认没有core,我们先来创建一个core。

通过命令创建和删除core:

# 创建core,-c指定创建的core名
./solr create -c test_core1
# 删除core,-c指定删除的core名
./solr delete -c test_core1

完成后回刷新solr界面,点击下拉“Core Selector”即可看到刚才建立的core,选择core即可进入core的管理界面,如下图。

2.3 上传文件创建索引

上一步相当于我们的搜索引擎系统创建完闭,但此是搜索引擎中是没有内容的,我们这里就给它上传文件。以example/exampledocs下文件为例

./post -c test_core1 ../example/example

2.4 查询

完成后切换到Query页面,直接点击”Execute Query“按钮,在右侧即出现一些已建立的索引

查询页面各参数说明如下:

参数 描述
q 这是Apache Solr的主要查询参数,只输入值有时不能搜索,使用键值形式最稳妥
fq 这个参数表示Apache Solr的过滤器查询,将结果集限制为与此过滤器匹配的文档。
start start参数表示页面的起始偏移量,此参数的默认值为0
rows 这个参数表示每页要检索的文档的数量。此参数的默认值为10
sort 这个参数指定由逗号分隔的字段列表,根据该列表对查询的结果进行排序。
fl 这个参数为结果集中的每个文档指定返回的字段列表。
wt 这个参数表示要查看响应结果的写入程序的类型。

2.4 solr有什么用

经常听说solr是一个全文搜索引擎,效果类似百度、谷歌。我对这句话的理解是我们可以向slor传一个文档它就会对文档进行分词,然后对每个词建立索引,然后我们搜索某个词就会出现所有出现过这个词的位置。

然而正如大多数it概念都是炒作认识其本质会大失所望一样,solr的”全文索引“和”类似百度“也是个炒作的概念(如果我没理解错的话)。

2.4.1 solr不支持非结构化数据

我们看到solr声称支持”xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,log“等一堆格式,但其所谓的支持并不是我们认为中的”读取文件/分词/和索引“,只是支持把文件传上去然后给文件名建个索引----那我觉得solr完全可以直接声称自己支持所有文件格式。

上传的文件中有个sample.html文件,我们输入html查找一下,返回结果如下。相当于就是一个文件(属性)的索引,html文件内容的索引?对不起那里没有的。(这就是所谓的支持html?)

2.4.2 solr只支持固定格式的结构化数据

solr虽然不支持html/txt/pdf等非结构化文件内容的索引,但如果支持xml/json等结构化文件也还行啦。

不好意思我们上传了的xml/json文件内容确实是建立了索引,但是其格式得固定的。

上图id为978-1423103349的索引在solr web页面返回结果如下,就相当原样输出。

总的就是说需要明确给出id值,而且所有索引域都是自己都是起好名字,然后设定好值。

2.4.3 solr用在哪里

当然txt等非结构化文件也不是完全没可能导入,比如采用这种方法将txt文件以行为单位进行切割,然后为给每行生成一个id这样改造成结构化后就能导入了。

但这种还是将非结构化转成结构化,非结构化还是无法直接导入;所以solr根本不是百度而是个数据库(比如mysql或者更像NoSQL),百度就不要再想了。

solr的的使用一是使用代码将结构化数据转为结构化数据后导入数据,二是从数据导入数据。但solr就像个数据库那为什么不直接用数据库呢,何必新弄出个东西?solr可以和hadoop配合?hive不更好能和haddop配合吗?所以,我现在也不是很懂solr有什么意义。

日志监测系统ELK中,Logstash负责读取和格式化(结构化)各种数据发送给ElasticSearch,ElasticSearch就和solr是一样的东西,而kibana从ElasticSearch读取数据进行展示。

参考:

https://www.yiibai.com/solr

http://lucene.apache.org/solr/guide/7_5/solr-tutorial.html#solr-tutorial

Solr安装使用教程的更多相关文章

  1. Solr安装步骤

    一.Solr概述 1.什么是Solr Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr提供了比Lucene更为丰富的查询语言,同时实现了可 ...

  2. solr 安装

    1:solr简介 solr是一个开源的搜索引擎,是对lucene做了封装,对外提供类似于webservice接口, 可以使用http请求的方式对solr进行操作. lucene.solr.elasti ...

  3. IntelliJ IDEA - 热部署插件JRebel 安装使用教程

    IntelliJ IDEA - JRebel 安装使用教程 JRebel 能做什么? JRebel 是一款热部署插件.当你的 Java-web 项目在 tomcat 中 run/debug 的时候 , ...

  4. Zabbix3.x安装图解教程

    准备知识: Zabbix3.x比较之前的2.0界面有了很大的变化,但是安装部署过程与2.x基本完全一样. 1.Zabbix2.x安装图解教程 http://www.osyunwei.com/archi ...

  5. 03 Apache Solr: 安装和运行

         前面介绍了Solr在项目中的使用和构建高度可用.高度可扩展的Solr服务器的一些想法.但是光说不练假把式,现在开始,把Solr运行起来继续深入了解吧! 安装 安装JAVA Apache So ...

  6. solr安装笔记与定时器任务

    一:solr启动 目前solr最高版本为5.5.0版本,很多solr安装都是说将server文件copy到tomcat中,但是solr版本自带有jetty的启动方式 首先下载solr-5.5.0版本, ...

  7. VMware vCenter Server安装图解教程

    安装说明: 1.安装VMware vCenter Server的主机操作系统为:Windows Server 2008 R2 2.在Windows Server 2008 R2中需要预先安装好SQL ...

  8. Solr安装过程

    Solr安装过程 下载相关资料 solr 4.2.0 http://lucene.apache.org/solr/ 期间安装过 solr 4.3.0 很可惜没有配置成功 apache-tomcat-7 ...

  9. 在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程

    在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程 本教程提供PDF格式下载: 在RedHat.Enterprise.Linux_v6.3系统中安装Ora ...

随机推荐

  1. ELK基础原理

    搜索引擎 索引组件:  获取数据-->建立文档-->文档分析-->文档索引(倒排索引)    搜索组件:  用户搜索接口-->建立查询(将用户键入的信息转换为可处理的查询对象) ...

  2. python日期加减法操作

    对日期的一些操作: 对日期的一些操作: 1 #日期转化为字符串并得到指定(或系统日期)n天后的日期--@Eillot 2 def dataTimeToString(dsNow=ReservationT ...

  3. Cartographer源码阅读(7):轨迹推算和位姿推算的原理

    其实也就是包括两个方面的内容:类似于运动模型的位姿估计和扫描匹配,因为需要计算速度,所以时间就有必要了! 1. PoseExtrapolator解决了IMU数据.里程计和位姿信息进行融合的问题. 该类 ...

  4. [转]有return的情况下try catch finally的执行顺序

    结论: 1.不管有没有出现异常,finally块中代码都会执行: 2.当try和catch中有return时,finally仍然会执行: 3.finally是在return后面的表达式运算后执行的(此 ...

  5. 中文WebFont解决方案Font-Spider(字蛛)

    我们在日常需求中,经常会碰到视觉设计师对某个中文字体效果非常坚持的情况,因为页面是否高大上,字体选择是很重要的一个因素,选择合适的字体可以让页面更优雅.面对这种问题,我们通常以下方式来进行设计还原: ...

  6. 微信内置安卓x5浏览器请求超时自动重发问题处理小记

    X5内核  请求超时后会自动阻止请求返回并由代理服务器将原参数重新发送请求到服务层代码.但由于第一次请求已经请求到服务器,会导致出现重复下单.支付等重大问题. 该问题由于腾讯x5浏览器会自动阻止第一次 ...

  7. Redis单机配置以及集群(sentinel、jediscluster)配置

    最近一直在使用Redis作为缓存数据库,在使用当中,刚开始没有注意配置问题. 1.纯粹的注入单机模式 <bean id="jedisPoolConfig" class=&qu ...

  8. C#-----字节数组(byte[])和字符串相互转换

       Encoding类  表示字符编码 1.字符串转换成字节数组byte[] using System; using System.Collections.Generic; using System ...

  9. C# 杀掉Windows中所有Excel进程

    Process[] procs = Process.GetProcessesByName("excel"); foreach (Process pro in procs) { pr ...

  10. ajax返回数据为undefined

    在使用ajax异步请求后台返回数据后,使用console.log(data.message)打印返回数据,显示为undefined.苦恼了很久,终于在网上找到了答案. 先给大家看下异步代码: /*清零 ...