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
    评论
代码下载:完整代码,可直接运行 ;运行版本:2022a或2019b或2014a;若运行有问题,可私信博主; **仿真咨询 1 各类智能优化算法改进及应用** 生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化 **2 机器学习和深度学习方面** 卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断 **3 图像处理方面** 图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知 **4 路径规划方面** 旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化 **5 无人机应用方面** 无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配 **6 无线传感器定位及布局方面** 传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化 **7 信号处理方面** 信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化 **8 电力系统方面** 微电网优化、无功优化、配电网重构、储能配置 **9 元胞自动机方面** 交通流 人群疏散 病毒扩散 晶体生长 **10 雷达方面** 卡尔曼滤波跟踪、航迹关联、航迹融合

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值