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

[经验分享] 流火行者

[复制链接]

尚未签到

发表于 2017-12-19 14:05:08 | 显示全部楼层 |阅读模式
前言:
  原文地址:
  http://www.cnblogs.com/JimmyBright/p/7156069.html
  使用搜索引擎,我们常规的数据查询会快很多,还可以对关键词进行中文分词查询,返回一些高亮,就和我们每天使用的搜索服务一样。我们这里要使用Solr来进行我们的搜索服务搭建。如果你使用php,很可能你会在网上查到Sphinx这个搜索引擎,说是对php支持的很好,不要迟疑,远离它,这个尼玛官网都没了,已经很多年没更新了,中文更是没办法支持,功能更是非常有限。Solr一直在更新版本,用的人很多,官网http://lucene.apache.org/solr/,可以了解详情。
  Solr是一套java写的独立搜索引擎,当然了,如果你不会java,没有任何关系。
  废话少说,我们先看怎么在服务器上安装支持中文的Solr服务(本文是基于solr最新的6.5+版本),
  1:安装
  首先看下服务器的java环境配置
DSC0000.jpg

  如果低于1.8,你就要先升级服务器环境了,这个我就不描述了。
  java环境配置完成之后,进入你想要安装搜索引擎的目录,直接在官网下载solr的压缩包wget https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/6.6.0/solr-6.6.0.tgz
  (我前段时间在项目中用的时候还是6.5.1版本,现在已经6.6.0了,我这为了方便还使用6.5.1的案例描述)
  下载完成之后解压目录是这样子的
DSC0001.jpg

  打开example进入
  solr-6.6.0/example/example-DIH/solr
  会发现已经几个demo样子的目录
[iyunv@10-10-87-38 solr]# ls

  atom  db  mail  solr  solr.xml  tika
[iyunv@10-10-87-38 solr]#

  这里需要说明一下,这个atom、db、mail等都是单独的搜索业务,大的项目里可能会拆分出像这样很多的搜索业务类型。我们复制其中的一个,如mail整个目录复制到/usr/solr-6.6.0/server/solr,
  这个目录才是搜索引擎最终的查找目录,所有搜索的配置以及数据库的索引等都在这个目录下,mail 下的文件结构是这样的
[iyunv@10-10-87-38 mail]# ls

  conf  core.properties  data
[iyunv@10-10-87-38 mail]#

  2:启动搜索引擎
  配置搜索,只需要关注conf就可以了,打开conf
[iyunv@10-10-87-38 conf]# ls

  admin-extra.html              clustering    lang                  mapping-FoldToASCII.txt      solrconfig.xml  synonyms.txt
  admin-extra.menu-bottom.html  currency.xml  mail-data-config.xml  mapping-ISOLatin1Accent.txt  spellings.txt   update-script.js
  admin-extra.menu-top.html     elevate.xml   managed-schema        protwords.txt                stopwords.txt   xslt
[iyunv@10-10-87-38 conf]#

  这时候应该就可以启动一个空的搜索服务了。
  进入Solr的根目录
[iyunv@10-10-87-38 bin]# ls

  init.d  install_solr_service.sh  oom_solr.sh  post  solr  solr.cmd  solr.in.cmd  solr.in.sh
[iyunv@10-10-87-38 bin]# ./solr start

  WARNING: Starting Solr as the root user is a security risk and not considered best practice. Exiting.
  Please consult the Reference Guide. To override this check, start with argument '-force'
[iyunv@10-10-87-38 bin]# ./solr start -force

  Waiting up to 180 seconds to see Solr running on port 8983 [|]  
  Started Solr server on port 8983 (pid=9757). Happy searching!
[iyunv@10-10-87-38 bin]#

  这时候搜索引擎已经启动了,你可以在浏览器上打开一个Solr的管理界面,地址框输入
  http://10.10.87.38:8983/solr/#/mail
DSC0002.jpg

  注意左边红色框,下拉框里会显示上面你从example里复制过来的项目,红框里有一个Query,就是搜索关键词用的,你可以在这里边测试你的搜索服务是否正常,具体你可以自己点进去看一看就明白了,当然了,随便复制过来的mail肯定是不能工作的,因为这个没有连接到你自己的数据库。
  3:配置Solr
  重新回到/solr-6.5.1/server/solr目录下
  我这复制了mail,然后改名字为crm,作为我自己的搜索模块。下面就要配置这个crm了
  进入
  /solr-6.5.1/server/solr/crm/conf
[iyunv@10-10-87-38 conf]# ls

  admin-extra.html              clustering             db-data-config.xml  managed-schema               protwords.txt   stopwords.txt     xslt
  admin-extra.menu-bottom.html  currency.xml           elevate.xml         mapping-FoldToASCII.txt      solrconfig.xml  synonyms.txt
  admin-extra.menu-top.html     dataimport.properties  lang                mapping-ISOLatin1Accent.txt  spellings.txt   update-script.js
[iyunv@10-10-87-38 conf]#

  配置db-data-config.xml
  这个是配置数据库的,由于我这使用的mysql,然后要搜索的只有一张表,所以配置就比较简单了
DSC0003.jpg

  你要搜索很多表的话,就配置多个entity,(我这业务上没这需求,咱们没研究这块)这个配置是让solr对数据库的字段内容建立索引并保存下来,搜索的时候不再查找数据库,直接查找索引返回结果
  配置solrconfig.xml
  这个是solr本身的配置,基本包含高亮显示,返回字段长短,查询超时设置等等,如果不做高级定制,这个文件基本不用动,唯一要注意的是
  <requestHandler name="/dataimport">
  <lst name="defaults">
  <str name="config">db-data-config.xml</str>
  </lst>
  </requestHandler>
  配置managed-schema
  这个文件很重要了,你可以在这里配置你要搜索的字段的属性,这里面你会看到很多的field节点,看一下就会知道怎么设置了。
  4:配置中文搜索
  默认的是不支持中文搜索的,我们还要添加中文的jar包
  网上搜索一下ik-analyzer,下载ik中文分词包放在lib文件夹下
[iyunv@10-10-87-38 solr]# cd crm/

[iyunv@10-10-87-38 crm]# ls

  conf  core.properties  data  lib
[iyunv@10-10-87-38 crm]# cd lib

[iyunv@10-10-87-38 lib]# ls

  IKAnalyzer.cfg.xml  ext.dic              ik-analyzer-solr5-5.x.jar        solr-analyzer-ik-5.1.0.jar
  derby-10.9.1.0.jar  hsqldb-1.8.0.10.jar  mysql-connector-java-5.1.42.jar  stopword.dic
[iyunv@10-10-87-38 lib]# pwd

  /solr-6.5.1/server/solr/crm/lib
[iyunv@10-10-87-38 lib]#

  分词包装好后要返回到managed-schema配置中文分词的支持
  在文件末尾添加节点
DSC0004.jpg

  然后在你想要搜索中文的字段里添加ik分词
DSC0005.jpg

  5:完成Solr
  保存所有修改过的配置,然后重启Solr服务。再从浏览器进入Solr管理界面。
  首先我们要验证一下中文分词是否配置成功了(中文没配置成功,我们的搜索就没有意义)
DSC0006.jpg

  像这样子的,你的中文分词就配置成功了。
  下面就可以测试你的搜索了
DSC0007.jpg

  看到这样的界面就说明Solr的搜索引擎服务配置完全成功了!
  现在可以庆祝第一阶段的胜利了。
  接下来我们就要使用PHP来访问搜索结果,封装接口提供给前端调用。^_^

运维网声明 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-425717-1-1.html 上篇帖子: Solr In Action 中文版 第一章(四、五) 下篇帖子: Solr第一讲
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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