一、安装

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. 后台管理界面admin

    admin组件:展示数据表,快速的录入数据. 为了安全,可以在路由分发时修改下admin的名字.(一定要改) 1.不想使用英文,则在app里的settings修改一下(在最下面的位置) LANGUAG ...

  2. openshift 容器云从入门到崩溃之七《数据持久化》

    数据持久化常用的有两种: hostPath 挂载容器宿主机的本地文件夹,直接修改pod的配置 volumes: - hostPath: path: /data/logging-es type: '' ...

  3. cocos2d JS-(JavaScript) 冒泡排序

    思想: 比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针对所有的元素重复以上的步骤,除了最 ...

  4. TP连接数据库报错:SQLSTATE[HY000] [2002] No such file or directory

     连接数据库报错:“SQLSTATE[HY000] [2002] No such file or directory”. 出现这个问题的原因是PDO无法找到mysql.sock或者mysqld.soc ...

  5. One VS Rest

    简单来说就是分类的类别有多个,不再是二分,比如根据某些特征,什么温度.湿度.空气流动情况来预测天气,天气的label不能说是好天气和坏天气两种,而是分晴天.雨天.阴天,雪天等等,对于决策树或者从计算机 ...

  6. html5 javascript 事件练习3键盘控制练习

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  7. html5 javascript 事件练习1

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  8. Painter's Problem (高斯消元)

    There is a square wall which is made of n*n small square bricks. Some bricks are white while some br ...

  9. flask_mail发送163邮件,报553错误的原因

    最近在练习用flask_mail发送163邮件时报错: reply: '553 authentication is required,163 smtp9,DcCowAD3eEQZ561caRiaBA- ...

  10. h5 的localStorage和sessionStorage存到缓存里面的值是string类型

    localStorage永久存在,不手动清除永远存在:sessionStorage 一次会话的浏览器关闭就自动清除 h5 的localStorage和sessionStorage 存到缓存里面的值都是 ...