Solr的总结文档

Solr的总结文档

一、    综述

预研使用solr已经一段时间,最近由于工作原因,在研究hadoop内的spark,因此solr就暂时告一段落,在此对前端时间对solr的使用和理解做一个总结,毕竟我现在也只略知皮毛,并未精通,未来再切换频道回索引时我也方便查阅

文章从solr安装使用、solr/lucene源码结构、索引理论基础这三个方向进行说明。文章将逐步完成。

二、    Solr安装使用

Solr是基于lucene的开源搜索平台,它可以对多种类型数据(pdf,txt等)建立索引,并提供全文索引和搜索,另外solr是可扩展性的,它支持分布式索引和搜索。

Solr使用java编写,是运行在jetty,tomcat(servlet容器)上的全文搜索服务。Solr提供restful接口,因此可使用任何语言编写程序与solr进行通信。

Solr安装

Solr安装前需要在机器上安装jre,下载solr前,看清solr需要的最低jre版本,可以通过命令:java –version查看当前系统的jre版本。有关jre的下载和配置在这里就不细说了。Solr的单机测试只需要:

1、  官网下载solr;

2、  解压solr;

一旦解压,就可以运行solr作为测试,但如果您是要将solr加入产品中,那么可以选择用脚本启动solr service:

1、  tar xzf solr-X.Y.Z.tgz solr-X.Y.Z/bin/install_solr_service.sh --strip-components=2

2、   ./install_solr_service.sh solr-X.Y.Z.tgz

此时你便可以使用:service solr status/start/stop命令来查看/启动/关闭solr服务了。

 

solr service服务的启动配置

上述使用脚本install_solr_service.sh启动方式只能在linux类系统使用,你可以通过:

./install_solr_service.sh –help

查看脚本启动的参数。比如:

./install_solr_service.sh solr-X.Y.Z.tgz -i /opt -d /var/solr -u solr -s solr -p 8983

 

solr service启动方法?

上述之后,可以直接使用命令:service servicename start启动,本文的servicename都将使用默认值solr。

如果你直接解压了solr的安装包,并没有安装service服务,那么直接启动./bin/solr start。但本文后续内容都基于solr service方式操作。

如何检查solr是否已启动?

1.启动solr后可通过service solr status查询当前状态。另外还可以直接在浏览器输入:

2.登录浏览器,输入:http://ip:port/solr/

查看solr的界面,其中ip为运行solr的机器的ip,如果是在本机则为localhost,port默认为8983,如果你在启动脚本时使用了-p 参数,那么就为-p指定的值。

启动服务后,你的计算机发生了什么? 

在使用脚本启动solr后,可以查看/etc/init.d/目录,该目录下会包含servicename servicename是脚本启动时-s 后的参数,默认为solr)脚本,因此我们可以通过service 命令启动solr服务。脚本内容将包含如以下内容:

SOLR_INSTALL_DIR=/opt/solr

SOLR_ENV=/etc/default/solr.in.sh

RUNAS=solr

其中SOLR_INSTALL_DIR可由./install_solr_service.sh  -i /your/path/to/install 指定,SOLR_ENV我们在下面解说,

上述的SOLR_ENV脚本,这个脚本内容有:

 

SOLR_PID_DIR=/var/solr

SOLR_HOME=/var/solr/data

LOG4J_PROPS=/var/solr/log4j.properties

SOLR_LOGS_DIR=/var/solr/logs

 

SOLR_PID_DIR SOLR_HOME两个参数,其中SOLR_PID_DIR为运行solr的pid文件所在目录,我们需要注意的是第二个参数SOLR_HOME,SOLR_HOME是索引文件和core文件所在的目录,该文件包含我们生成的索引文件,core的配置文件等。SOLR_HOME后面的参数可以在./install_solr_service.sh -d /your/path/to/SOLR_HOME 指定,默认为/var/solr/data。

后两个参数是指定的日志路径。现在尚未仔细研究,暂时不写。

 

SOLR_HOME是什么?

SOLR_HOME是Solr使用的一个重要文件夹,它是索引存储的地方,同时该目录关联了每个core的配置文件和索引文件.简单的说,SOLR_HOME关联索引库与配置文件.

 

此时,你就已经完成solr的安装和启动,这个我们接下来我们将讨论solr的用处,如何使用solr建立索引,在此只见,我们先将solr源码部署在eclipse上。

Solr源码在eclipse上部署

1、  下载solr源码并解压

2、  下载ant

3、  在solr解压的目录运行ant eclipse

4、  在eclipse 导入solr程序

5、  修改路径

6、  配置运行参数

7、  因为solr内带jetty,可以直接用application方式编译运行即可

Solr示例代码

 

Solr配置文件更改

当我们在工程中时,往往要设定schema,即确定哪些属性需要索引,哪些属性需要展示,以及某个属性使用的分词器,搜索时使用排序等信息。在solr中,这些信息都在managed-schema里。在此,需要对solr内的名词做点说明:

Documents:我们处理的文档都将转换成documents,solr中一个document对应我们处理的一篇文档,它是对文档的描述,从物理上说document是field集合。

Field:属性,比如一个文档可能包含作者,名字,内容,时间等属性,field可以为不同的数据类型,比如作者是字符串,时间是长整形。我们可以通过field type指定某种field的数据类型,以及这种类型如何分词,如何索引。

Solr将field和field type配置在schema文件中,名字为managed-schema或者schema.xml,我的另一篇文章有对shcema的设计做过简单介绍,在此就不赘述了。另外,如果我们运行的是solrcloud(分布式索引),这两个文件就不存在本地文件系统了,但我们可以通过web页面看见我们的配置。

官网上有介绍更改配置,schema提供restful接口供我们修改schema,但当我们的schema文件更改后,就涉及到对原有文件重建索引问题,暂时还没实验。

在安装包中,包含几个schema示例,它们的结构如下:

 

Solrcloud启动

Solrcloud内置有一个zookeeper,用于存储配置,master选取等,但我们最好是重新下载安装zookeeper,以防solrcloud节点断掉时影响整个集群的使用。

三、    Solr程序结构

Solr内置jetty

Solr程序跟踪

Lucene主要的类

四、    索引技术

单词-文档矩阵

倒排表

 

转载于:https://www.cnblogs.com/honeyqiong/p/5701704.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值