杂谈之不同行业的Solr

前几天去一家互联网创业公司面试搜索引擎开发工程师,结果被pass了,仍不住想来吐槽下。尽管当时面试没啥准备,也没表现好,但是也学到了不少东西。现在就随便吐槽一下吧。

本人是在安防公司做大数据搜索引擎,搞Solr也一年多点了,自认为对Solr了解的也不少了,但是为什么在面试中碰壁呢,回想一下面试的情节,主要觉得跟行业不同造成对Solr的使用方式不同。

  • 首先,我们公司使用的Solr是对应交通行业的大数据,交通行业的数据有个显著的特点就是:

1. 域多,存在几十个域;

2. 域短,每个域的长度很短,比如车牌,车身颜色,车牌颜色,车速,等等跟车有关的数据,这些数据要么是数字类型,要么就是几个字符的字符串

3. 数据量,一个城市的过车量有多少,基本上能达到每秒几千条记录。

  • 基于以上这个数据特点,所以我们的Solr使用跟互联网这种全文检索形式的使用方式会由很多区别:

1. 首先,我们公司是卖服务器的或者说是卖软件的,而互联网公司是卖服务的。这样的差别就是,互联网公司觉得性能不行,那他自己加一台服务器,增加   solrcloud的shard,就可以解决性能问题了。而我们呢?卖一台服务器就已经很难了,客户怎么会轻易要两台呢?所以我们不能通过增加服务器,增加shard的方式来优化性能,我们只能往死里的优化Solr/Lucene。在搞Solr这一年,改动过好多Solr/Lucene的源码。面试的那位仁兄甚至问我,你们一台服务器跑几个java进程,我说好几个,他诧异的看着我说我们只有一个。尼玛,太幸福了。

2. 我们的数据虽然域短,但是数据量大啊,也就是document多。一台服务器我们就要存放10亿的数据量,有时甚至达到20亿。尼玛,20亿的数据互联网公 司是不是已经N多台构成Solrcloud了?我甚至直接把Solr的一个core的document弄到撑爆过,document是int型,也就是单台服务器单个core的最大 document是int型的上限,也就是21亿,我就搞到过21亿,那个时候甚至动了改这个类型的想法。所以一比较就觉得互联网公司是高富帅,俺们就是屌丝。我们的集群规模是多少?10台一百亿啊。

3. 查询吧也是有很大区别的,我们的域段,所以我们什么乱七八糟的查询方式都没用,啥米PharseQuery,RangeQuery,还有什么编辑距离查询,近似查 询,本人使用的Solr只有一个Boolean查询,顶多外加一个模糊查询。简简单单,清清楚楚,多好。

4. 查询性能,有人或许会问,一台服务器单个core10亿的数据量是不是会很慢,本人很自豪的会告诉他,不慢,经过一年的优化只要1秒左右。但是那位面试 的哥哥告诉我他们的查询只要几十毫秒,我瞬间被打击了。如果10亿数据用十几二十台集群,我也可以达到几十毫秒的。

5. 索引性能,单台10亿的数据对索引的建立以及合并是个很大的挑战,这个一直都是本人最头大的地方,也一直都在努力优化,不想说了。

最后,有句话说的是“隔行如隔山”,虽然同样用的是Solr,但是安防行业与互联网行业对他的使用是完全的两个方向。这次面试让我明白了以前我一直忽视的Solr的一些其他特性以及基础知识,评分机制,缓存机制,查询组件,查询方式,分词等等一些,接下来的日子继续勤练内功。

杂谈之不同行业的Solr的更多相关文章

  1. 后端技术杂谈4:Elasticsearch与solr入门实践

    阮一峰:全文搜索引擎 Elasticsearch 入门教程 作者:阮一峰 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://g ...

  2. Solr实战:使用Hue+Solr实现标签查询

    公司最近在研究多条件组合查询方案,Google的一位技术专家Sam和我们讨论了几个备选方案. Sam的信: 我做了进一步研究,目前有这么几种做法: 1) 最直接粗暴,只做一个主index,比如按行业+ ...

  3. 【管理心得之三十二】PMP杂谈---------爱情必胜术

    这次一反常态,没有场景设计,我想借此文普及一下PMP是什么? 但我不知道这样枯燥的话题能否能引起你的兴趣,我不得不套用“标题党”<爱情必胜术>来博你眼球. 我真没有说谎,此文是献给那些孤身 ...

  4. solr与.net系列课程(五)solrnet的使用

     solr与.net系列课程(五)solrnet的使用 最近因项目比较忙,所以这篇文章出的比较晚,离上一篇文章已经有半个月的时间了,这节课我们来学下一下solr的.net客户端solrnet 出处   ...

  5. 通信行业OSS支撑系统软件研发思考

    一般的,对所谓大型.通信行业.OSS支撑软件系统,我们可宏观定义以下几点: 以年计的研发周期 以几十人计的研发团队 以百计的业务菜单功能点 以千计的数据库表 以万计的业务术语指标 以亿计的数据表记录 ...

  6. 杂谈之SolrCloud这个坑货

    杂谈之SolrCloud这个坑货 看<Solr In Action>时候看到对Solr不足的介绍有这么一段话:“One final limitation of Solr worth men ...

  7. iOS APP安全杂谈

      iOS APP安全杂谈 高小厨 · 2015/06/30 10:16 0x00 序 以前总是在这里看到各位大牛分享其安全渗透经验,而今我也很荣幸的收到了乌云的约稿,兴奋之情难以言表.由于IOS是一 ...

  8. WPF 杂谈——开篇简言。

    这俩年多来笔者一直在从事关于WPF的开发.虽然不能说是专家级别的.但是对于WPF的应用还是有一定的了解.论他的灵活性决对不在WinForm之下.WPF的出现更是引发一段热议.他的何去何从更是让很多人感 ...

  9. 全文搜索引擎 ElasticSearch 还是 Solr?

    最近项目组安排了一个任务,项目中用到了全文搜索,基于全文搜索 Solr,但是该 Solr 搜索云项目不稳定,经常查询不出来数据,需要手动全量同步,而且是其他团队在维护,依赖性太强,导致 Solr 服务 ...

随机推荐

  1. poj 3171 Cleaning Shifts(区间的最小覆盖价值)

    Cleaning Shifts Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2743   Accepted: 955 De ...

  2. Need a code of lazy load for div--reference

    1. For all DIVs of a page $(function() {  $("div").lazyload({effect: 'fadeIn'});}); 2. For ...

  3. [转] Javascript中数组与字典(即object)的使用

    简述: 简单记录一下数据结构字典和数组, 其实在Javascript这种弱类型的脚本语言中,数组同时也就是字典,下面主要就是字典数组的简易使用 代码: 1. 数组中添加map <!DOCTYPE ...

  4. Android(java)学习笔记242:多媒体之设置全屏的方法

    在实际的应用程序开发中,我们有时需要把 Activity 设置成全屏显示,一般情况下,可以通过两种方式来设置全屏显示效果.其一,通过在代码中可以设置,其二,通过manifest配置文件来设置全屏. 其 ...

  5. Android Studio学习随笔-移动动画的实现

    在上一篇博客我已经讲述了三种事件的实现方法,而现在我用复用方法来实现控件的自动移动,当然要实现控件的移动,先得在activity_main.xml文件中放置一个控件,此处我放置的是一个button控件 ...

  6. Word 查找替换,通配符一览表

    Word查找替换详细用法及通配符一览表 使用通配符要查找“?”或者“*”,可输入“\?”和“\*”,\1\2\3依次匹配数对括号内容查找(a)12(b)   替换\2XY\1   结果:bXYa ([ ...

  7. 初识Activity

    Callback Description onCreate() This is the first callback and called when the activity is first cre ...

  8. android6.0源码分析之Camera API2.0下的Capture流程分析

    前面对Camera2的初始化以及预览的相关流程进行了详细分析,本文将会对Camera2的capture(拍照)流程进行分析. 前面分析preview的时候,当预览成功后,会使能ShutterButto ...

  9. Linux下解决高并发socket最大连接数所受的各种限制(解除IO限制)

    linux作为服务器系统,当运行高并发TCP程序时,通常会出现连接建立到一定个数后不能再建立连接的情况 本人在工作时,测试高并发tcp程序(GPS服务器端程序),多次测试,发现每次连接建立到3800左 ...

  10. Mavne + Spring整合CXF

    http://blog.csdn.net/xiongyu777888/article/details/23787615(没毛病) http://blog.csdn.net/hbsong75/artic ...