Solr安装使用教程
一、安装
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读取数据进行展示。
参考:
http://lucene.apache.org/solr/guide/7_5/solr-tutorial.html#solr-tutorial
Solr安装使用教程的更多相关文章
- Solr安装步骤
一.Solr概述 1.什么是Solr Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr提供了比Lucene更为丰富的查询语言,同时实现了可 ...
- solr 安装
1:solr简介 solr是一个开源的搜索引擎,是对lucene做了封装,对外提供类似于webservice接口, 可以使用http请求的方式对solr进行操作. lucene.solr.elasti ...
- IntelliJ IDEA - 热部署插件JRebel 安装使用教程
IntelliJ IDEA - JRebel 安装使用教程 JRebel 能做什么? JRebel 是一款热部署插件.当你的 Java-web 项目在 tomcat 中 run/debug 的时候 , ...
- Zabbix3.x安装图解教程
准备知识: Zabbix3.x比较之前的2.0界面有了很大的变化,但是安装部署过程与2.x基本完全一样. 1.Zabbix2.x安装图解教程 http://www.osyunwei.com/archi ...
- 03 Apache Solr: 安装和运行
前面介绍了Solr在项目中的使用和构建高度可用.高度可扩展的Solr服务器的一些想法.但是光说不练假把式,现在开始,把Solr运行起来继续深入了解吧! 安装 安装JAVA Apache So ...
- solr安装笔记与定时器任务
一:solr启动 目前solr最高版本为5.5.0版本,很多solr安装都是说将server文件copy到tomcat中,但是solr版本自带有jetty的启动方式 首先下载solr-5.5.0版本, ...
- VMware vCenter Server安装图解教程
安装说明: 1.安装VMware vCenter Server的主机操作系统为:Windows Server 2008 R2 2.在Windows Server 2008 R2中需要预先安装好SQL ...
- Solr安装过程
Solr安装过程 下载相关资料 solr 4.2.0 http://lucene.apache.org/solr/ 期间安装过 solr 4.3.0 很可惜没有配置成功 apache-tomcat-7 ...
- 在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程
在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程 本教程提供PDF格式下载: 在RedHat.Enterprise.Linux_v6.3系统中安装Ora ...
随机推荐
- 大牛推荐的5本 Linux 经典必读书
今天给大家推荐5本Linux学习相关的书籍:这些书籍基本都是很多大牛推荐过,并且深受业界好评的书:虽然只有5本,但是相信把5本全都认真看过的同学应该不多吧?希望这些书能够帮助你进阶为大牛! 上期传送门 ...
- C语言进阶之路(二)----字符串操作常见模型
1.while模型 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #includ ...
- laravel----------laravel5.3调度任务以及Artisan
1.在使用的过程中会遇到有些函数不能用需要在php配置文件里面打开: disable_functions = exec,passthru,popen,proc_open,shell_exec,syst ...
- Oracle 24角色管理
了解什么是角色 Oracle角色(role)就是一组权限(或者说是权限的集合). 用户可以给角色赋予指定的权限,然后将角色赋给相应的用户. 三种标准的角色 connect(连接角色) 拥有connec ...
- Python str byte 互相转换
- vim 命令学习(高级篇)
[1]打开文件方式 (1)vim +n filename 作用:打开文件,并定位到第n行 例如:vim +103 2019-02-26-errorrepeat.txt 效果:打开2019-02-26- ...
- vmstat性能分析介绍
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...
- Linux基础命令---lpc打印机控制
lpc lpc指令用来控制打印机,它提供了一个命令行,用户可以输出命令来控制打印机.如果命令行上没有指定命令,lpc将从标准输入中显示提示符并接受命令. 此命令的适用范围:RedHat.RHEL.Ub ...
- javascript时间处理
1.将一般格式时间转换为时间戳: var systime = "2018年04月28日 16:01:09"; systime = systime.replace('年', &quo ...
- idea 报错 :error:java:Compilation failed:internal java compiler error
当使用Tomcat运行项目时报错 翻译一下是 错误:Java:编译失败:内部Java编译器错误 这样看来更不理解了 其实原因是Java的版本不一致 查看项目的jdk版本是否一致: file----pr ...