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

[经验分享] solr研究

[复制链接]

尚未签到

发表于 2016-12-14 08:27:42 | 显示全部楼层 |阅读模式
  这些天学习solr,整理了下相关资料,发出来给看看。感谢@信息检索团队的@陈毅,以及好朋友@许琦同学的耐心解答。
  在此推荐solr学习论坛http://www.solr.cc/
1. Solr简介
  历史:
  Ø 2004年CNET开发Solar,为CNET提供站内搜索服务
  Ø 2006年1月捐献给Apache ,成为Apache的孵化项目
  Ø 一年后Solr孵化成熟,发布了1.2版,并成为Lucene的子项目
  Ø 2010年 6月 solr发布了最新的1.4.1版,这是1.4的bugfix版本
  Ø 如今Solr已经广为人知,并且许多公司都已经使用Solr去构建自己的搜索引擎:
  Ø  AOL、 Disney、Apple, Inc、阿里巴巴、安居客……
  
  概况:
  ØSearchon lucene w/Replication
  Ø一个基于Lucene的全文搜索服务器
  Ø提供了基于Http的Rest-like操作接口
  Ø高可扩展的开放架构
  Ø提供了强大的WEB管理界面
  Ø有多种客户端:Ruby、PHP 、Java 、Python 、.NET 、Perl 、JavaScript
  Ø索引复制
  Ø更方便的使用停用词、同义词等
  Ø易于集成、几乎不用写代码就能适应一般的需求
  一句话概况:Solr是Lucene面向企业搜索应用的扩展!
2. Solr功能介绍
  l
  l
  Ø 提供了丰富的查询缓存
  Ø 很容易的为本地以及远程的数据创建索引,DataImportHandler
  Ø 对Rich Document(word、pdf、ppt……)进行解析和创建索引
  Ø 快速增量更新索引,并复制到其他机器上
  Ø 层面搜索
  Ø More like this、Spelling suggestions、Auto-suggest……
  Ø 高度的可扩展性
  Ø NearRealtimeSearch
3. Solr实现原理
ØLucene回顾
  Ø 用Java编写的全文信息检索工具包,提供了基本的API
  Ø 使用倒排索引技术,极大提高了检索效率
  Ø 让最相关的头100条结果满足98%以上用户的需求
  Ø Org.apache.lucene.document、analysis、index、search
  Ø 应用jive、eclipse、linkedin(bobo、zoie)、twritter(NRT)
lLucene索引结构





  

  

  l Segment
  l Document
  l Filed
  l Term
lLucene搜索原理
  l 分词、中文分词
  Ø 机械分词:一元、二元、基于词库的分词
  l未登录词识别:机构名、人名、神马
  l歧义词
  Ø 基于统计:HMM
  l样本
  l 索引
  Ø 国家:{1,3,6,8,}
  Ø 上海:{3,7,16,17}
  Ø 法规:{1,6}
  Ø 人民:{3,9,16,20}
  l 搜索
  Ø 搜索:上海人民
  Ø 解析为: ’上海’ and ‘人民’ ,表示搜索同时出现’上海 ‘和’人民’的文档
  可以搜索出第3 和第16篇文档
  
ØSolr架构


  总体架构

  查询

  查询扩展

  建索引
4. Solr分布式

  1、 索引分片(水平扩展)
  2、 对分片做副本(并发、容错)
  3、 Zookeeper总体调度
  4、 查询引擎对结果做merge
5. Solr性能指标
  负载量:待测试
  查询速度:待测试
  并发量:待测试
6. Solr结合微博应用构建方案
  1、 主体组件:搭建solr集群(多solr实例+replication)。
  2、 数据接入:使用onlinestream接入firehose数据,发送数据给solr,对数据做sharding分发
  3、 索引构建:Solr设置定时更新索引
  4、 功能扩展:扩展solr的排序功能,开发二次过滤功能。
  4、client端查询:客户端通过solrj(java客户端)或者http请求进行查询
7. Solr待解决疑问
  7.1索引更新
  Solr搜索中第一次对数据建索引为索引新建,后续过程是索引更新过程。随着索引量增大是不是会出现更新越来越慢的情况。而且对于新增词库存在需要对原有索引进行重建过程.
  增量索引/索引更新问题目前较好的解决方案是google的Caffeine
  在Google采用Caffeine之前,Google使用MapReduce和分布式文件系统(如GFS)来构建搜索索引(从已知的Web页面索引中)。在2010年,Google搜索引擎发生了重大变革。Google将其搜索迁移到新的软件平台,他们称之为“Caffeine”。Caffeine是Google出自自身的设计,Caffeine使Google能够更迅速的添加新的链接(包括新闻报道以及博客文章等)到自身大规模的网站索引系统中,相比于以往的系统,新系统可提供“50%新生”的搜索结果。
  在本质上Caffeine丢弃MapReduce转而将索引放置在由Google开发的分布式数据库BigTable上。
  7.2分片问题
  按时间分片/按id的hash分片?

运维网声明 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-313940-1-1.html 上篇帖子: Solr 概况 下篇帖子: Apache Solr的各个包
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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