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

[经验分享] solr 的安装和配置

[复制链接]

尚未签到

发表于 2017-12-19 06:17:10 | 显示全部楼层 |阅读模式
  工作方式
  文档通过Http利用XML 加到一个搜索集合中。
  查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。
  简单讲拉,solr就是一个搜索引擎,可以把他比喻成数据库,只不过数据库是通过利用表和字段来进行查询等操作。而solr是通过Http利用XML或json来进行查询等操作。
  下载:
  上官网:http://www.apache.org/dyn/closer.lua/lucene/solr/6.5.1
  装linux的下载 .tgz格式的
  装win的下载  .zip格式的
  安装(linux):
  例如放到linux下的opt目录,然后
  tar -zxvf solr-6.5.1.tgz      解压
  mv solr-6.5.1  solr    重命名
  cd /opt/solr/bin     进入bin目录
  ./solr start -force     启动(-force 是为了让它强制执行。因为我是root用户登陆的,solr不建议用管理员直接启动solr。)
  安装完成。用浏览器访问:http://localhost:8983/solr  即可。
  常用的几个命令:
  启动:solr start
  指定端口启动:solr start -p 8984
  停止solr:solr stop -p 8983
  删除指定的core文件:solr delete -c corename
  创建core:solr create -c corename
  solr状态查看:solr status
  =============================

配置core(windows)
  配置我们自己的core。
  在控制台的左边菜单中,选择Core Admin,进入core新建页面。
  在点击Add Core 保存之前, 先进入solr的安装目录的 server - solr 下 新建一个和core同名的文件夹,如:
  进入E:\DevelopEnvironment\solr\solr-6.2.0\server\solr 新建 democore 。
  文件夹建好后,进入solr目录的 server\solr\configsets\basic_configs 下,拷贝conf文件夹到新建的文件夹下
  如:进入E:\DevelopEnvironment\solr\solr-6.2.0\server\solr\configsets\basic_configs 拷贝conf文件夹到刚刚新建的democore
DSC0000.jpg

  完成这一步准备工作后,回到控制台的Core Admin 录入name和dir 点击 Add Core 保存即可
DSC0001.jpg

  保存完成后,可看到该core:
DSC0002.jpg

  对应的文件夹内容也改变为:
DSC0003.jpg


新建schema
  core文件创建完成后,创建其对应的schema。
  进入该core的Schema 菜单 ,点击Add Field ,在弹出的页面中,录入name和type,name代表字段的名称,type为类型 ,类型选择 text_general。 stored 意思为,将该字段的值进行存储,用来以后索引的时候直接取出。indexed 表示 将该字段进行索引。
DSC0004.jpg

  录入完成后,点击Add Field保存即可。
  至此,core和schema都构建完成。接下来要向solr的这个core插入数据。

使用程序插入数据
  新建Java项目,将solr的对应jar包拷贝到项目中。
  使用到的jar包在 dist 文件夹下,主要包括 solrj这个jar包和solr-lib下的jar包,为了方便,直接全部拷贝过去即可。
  如:E:\DevelopEnvironment\solr\solr-6.2.0\dist\solr-solrj-6.2.0 和
  E:\DevelopEnvironment\solr\solr-6.2.0\dist\solrj-lib
DSC0005.jpg

  在官方的wiki中,介绍了如何使用solrj 访问solr服务。wiki地址为:
  wiki
  对应代码为:
  

        HttpSolrClient.Builder builder = new    HttpSolrClient.Builder("http://localhost:8983/solr/democore");  HttpSolrClient solrClient = builder.build();
  SolrInputDocument document = new SolrInputDocument();
  document.addField("id", System.currentTimeMillis() + "");
  document.addField("title", "计算机科学与技术" + System.currentTimeMillis());
  solrClient.add(document);
  solrClient.commit();
  solrClient.close();
  


查询数据
  可使用solr的控制台查询,也可以使用程序查询。
  输入关键字 “计算机” 可查询到对应数据。如图:
DSC0006.jpg

  输入关键字: “计科” ,也可以查询到对应数据。如图:
DSC0007.jpg

  证明solr插入数据成功。
  使用solrj查询,根据官方wiki的例子,代码如下:
  

  HttpSolrClient.Builder builder = new HttpSolrClient.Builder("http://localhost:8983/solr/democore");
  HttpSolrClient solrClient = builder.build();
  SolrQuery query = new SolrQuery();
  query.set("q", "title:计科");
  QueryResponse response = solrClient.query(query);
  SolrDocumentList list = response.getResults();
  solrClient.commit();
  System.err.println("匹配数量:"+list.getNumFound());
  Iterator itr = list.iterator();
  while (itr.hasNext()) {
  SolrDocument solrDocument = (SolrDocument) itr.next();

  List>  System.err.println(title.get(0));
  }
  

  

  运行结果:
DSC0008.jpg

  至此,全部完成。上述只是最基本的使用配置,对于中文的分词还是停留在最原始的每个中文都当作一个词汇的分词算法上。这是比较暴力不可取的,需要替换对应的中文分词器。

运维网声明 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-425557-1-1.html 上篇帖子: solr 利用cul或solr界面单值更新 下篇帖子: solr之~模糊查询【转】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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