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

[经验分享] Solr安装配置手册

[复制链接]

尚未签到

发表于 2017-12-18 19:38:30 | 显示全部楼层 |阅读模式
1. solr概述
1.1. solr的简介
  solr是一个基于lucene的全文检索引擎。他包括了全文检索,命中高亮,准实时搜索,富文本检索等特性. Solr是用Java编写的,并作为一个独立的全文搜索服务器,比如tomcat容器内运行。Solr的全文索引和搜索其核心使用了Lucene Java搜索库,并具有类似REST的HTTP / XML和JSON的API,可以很容易地从几乎任何编程语言使用.
  什么是全文检索?
  全文检索是将存储于数据库中整本书、整篇文章中的任意内容信息查找出来的检索。它可以根据需要获得全文中有关章、节、段、句、词等信息,也就是说类似于给整本书的每个字词添加一个标签,也可以进行各种统计和分析。
  对于全文检索来说,倒排索引是最常用的一种技术。倒排索引用来存储某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。
  然后再我们检索的时候。系统会将我们需要查询的文本转化为检索词。然后去映射表中查询其对应的文档,然后做文档归并既可以获取到我们希望得到的结果。
  Why solr?
  既然Solr是基于lucene的,那为什么我们不直接使用Lucene呢?
  Lucene是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎 。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎.
  Lucene的涉及目标决定了lucene在扩展和管理索引上比较困难。但是solr提供了一个管理页面,并且可以动态的添加和删除索引节点。可以做索引之间的互备,而这些使用lucene则很难实现
1.2. solr的特点

  • 基于标准的开放接口:Solr支持XML,JSON和HTTP的调用形式,所以虽然solr是用java写成,但是我们依然可以使用别的语言来调用solr
  • 先进的全文检索技术:在Solr中,我们不仅可以使用词来作为检索条件,还可以使用时间范围,数字范围等作为检索条件,也可以进行模糊搜索。
  • 线性可扩展性:可以在线的扩展索引节点,自动索引复制,自动故障切换和恢复。
  • 近实时索引:数据添加到索引后,可以很快的被检索到。
  • 管理界面:可以很方便的管理各个节点,包括索引统计信息以及各个节点的状态。
2. Solr安装
2.1. 下载solr
  http://lucene.apache.org/solr/downloads.html
2.2. 下载solr-dataimport-scheduler.jar
  见附录
  此jar包为从数据库导入数据时需要,为可选
2.3. 解压缩
  tar -zxvf solr-5.5.0.tgz
2.4. 拷贝solr执行库/文件

  • 拷贝solr-5.5.0/server/solr-webapp/webapp到tomcat下的webapps目录下,并改名为solr
  • 将solr-5.5.0/server/lib/ext/目录下的所有jar包复制到tomcat/webapps/solr/WEB-INF/lib/下
  • 将solr-5.5.0/server/solr目录复制到tomcat目录下并重命名为solr_home(存放检索数据)
  • 将solr-5.5.0/server/resouce下的log4j.properties文件复制到tomcat/weapps/solr/WEB-INF/classes目录下,如果没有则新建
  • 将solr-5.5.0/dist目录下的solr-dataimporthandler-5.4.0.jar和solr-dataimporthandler-extras-5.4.0.jar复制到tomcat/webapps/solr/WEB-INF/lib/下,这个是为了以后导入数据库表数据
2.5. 修改配置文件
2.5.1. 修改web.xml
  在web.xml中,找到如下配置项,并修改其中红色标记的信息(solrHome的地址),并放开注释,使其生效
  <env-entry>
  <env-entry-name>solr/home</env-entry-name>    <env-entry-value>/home/XXX/apache-tomcat-8.0.24/solrHome</env-entry-value>
  <env-entry-type>java.lang.String</env-entry-type>
  </env-entry>
  (可选)如果需要数据导入功能则增加如下配置
  <listener>
  <listener-class>
  org.apache.solr.handler.dataimport.scheduler.ApplicationListener
  </listener-class>
  </listener>
2.5.2. 修改启动脚本catalina.sh
  在启动脚本中增加如下命令
  JAVA_OPTS="-Dsolr.solr.home=/home/XXX/apache-tomcat-8.0.24/solr -Dsolr.root.logger=INFO,file,DAILY -Dsolr.log.dir=/home/XXX/apache-tomcat-8.0.24/solrHome/logs/"
  至此,solr基本上已经配置完成,可以正常启动了
2.6. IK分词器
2.6.1. 拷贝ik-analyzer-solr5-5.x.jar到tomcat/webapps/solr/WEB-INF/lib/
2.6.2. 在schema.xml中增加如下配置,用于注册一个text_ik的字段类型
  <fieldType name="text_ik">   
  <analyzer type="index">
  <charFilter/>
  <tokenizer useSmart="false" />
  <filter ignoreCase="true" words="stopwords_zh.txt" />
  <filter/>
  </analyzer>
  <analyzer type="query">
  <charFilter/>
  <tokenizer useSmart="true" />
  <filter synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
  <filter ignoreCase="true" words="stopwords_zh.txt" />
  <filter />
  </analyzer>
  </fieldType>
2.6.3. 拷贝stopwords_zh.txt到solrHome/core/conf目录下
2.6.4. 重启进入界面即可看到IK的效果
DSC0000.png

2.7. 数据库自动导入dataimport
2.7.1. 拷贝solr-dataimport-scheduler.jar到tomcat/webapps/solr/WEB-INF/lib/
2.7.2. 修改dataimport.properties文件
  在solrHome中增加文件夹conf,将附件中的dataimport.properties拷贝到conf目录中
2.7.3. 修改solrConfig.xml文件
  在文件中增加如下配置
  <requestHandler name="/dataimport">
  <lst name="defaults">
  <str name="config">data-config.xml</str>
  </lst>
  </requestHandler>
2.7.4. 增加data-config.xml
  <dataConfig>
  <!-- 这是mysql的配置,学会jdbc的都应该看得懂 -->
  <dataSource name="ds1" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://172.30.8.205:3306/mysql" user="root" password="root"/>
  <document>
  <entity name="product" dataSource="ds1"
  query="SELECT * FROM product"
  deltaImportQuery="SELECT * FROM product where pid='${dih.delta.pid}'"
  deltaQuery="SELECT pid FROM product where lastUpdateTime > '${dataimporter.lastUpdateTime}'">
  <field column="pid" name="id"/>
  <field column="name" name="product_name"/>
  <field column="catalog" name="product_catalog"/>
  <field column="catalog_name" name="product_catalog_name"/>
  <field column="price" name="product_price"/>
  <field column="lastUpdateTime" name="lastUpdateTime"/>
  </entity>
  </document>
  </dataConfig>
2.7.5. 重启进入界面即可看到效果
DSC0001.png

  附录:
  http://files.cnblogs.com/files/JonyTang/solr.rar
  代码操作solr演示:
  http://files.cnblogs.com/files/JonyTang/IndexManager.rar

运维网声明 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-425485-1-1.html 上篇帖子: Solr(一)Centos7 部署solr-5.5.4 下篇帖子: Solr简单测试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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