设为首页 收藏本站
查看: 1166|回复: 0

[经验分享] Solr的总结文档

[复制链接]

尚未签到

发表于 2017-3-2 10:09:15 | 显示全部楼层 |阅读模式
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主要的类
四、    索引技术
单词-文档矩阵
倒排表

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-349150-1-1.html 上篇帖子: 服务器对比 下篇帖子: spring源码:web容器启动(li)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表