杂谈之不同行业的Solr
杂谈之不同行业的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的更多相关文章
- 后端技术杂谈4:Elasticsearch与solr入门实践
阮一峰:全文搜索引擎 Elasticsearch 入门教程 作者:阮一峰 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://g ...
- Solr实战:使用Hue+Solr实现标签查询
公司最近在研究多条件组合查询方案,Google的一位技术专家Sam和我们讨论了几个备选方案. Sam的信: 我做了进一步研究,目前有这么几种做法: 1) 最直接粗暴,只做一个主index,比如按行业+ ...
- 【管理心得之三十二】PMP杂谈---------爱情必胜术
这次一反常态,没有场景设计,我想借此文普及一下PMP是什么? 但我不知道这样枯燥的话题能否能引起你的兴趣,我不得不套用“标题党”<爱情必胜术>来博你眼球. 我真没有说谎,此文是献给那些孤身 ...
- solr与.net系列课程(五)solrnet的使用
solr与.net系列课程(五)solrnet的使用 最近因项目比较忙,所以这篇文章出的比较晚,离上一篇文章已经有半个月的时间了,这节课我们来学下一下solr的.net客户端solrnet 出处 ...
- 通信行业OSS支撑系统软件研发思考
一般的,对所谓大型.通信行业.OSS支撑软件系统,我们可宏观定义以下几点: 以年计的研发周期 以几十人计的研发团队 以百计的业务菜单功能点 以千计的数据库表 以万计的业务术语指标 以亿计的数据表记录 ...
- 杂谈之SolrCloud这个坑货
杂谈之SolrCloud这个坑货 看<Solr In Action>时候看到对Solr不足的介绍有这么一段话:“One final limitation of Solr worth men ...
- iOS APP安全杂谈
iOS APP安全杂谈 高小厨 · 2015/06/30 10:16 0x00 序 以前总是在这里看到各位大牛分享其安全渗透经验,而今我也很荣幸的收到了乌云的约稿,兴奋之情难以言表.由于IOS是一 ...
- WPF 杂谈——开篇简言。
这俩年多来笔者一直在从事关于WPF的开发.虽然不能说是专家级别的.但是对于WPF的应用还是有一定的了解.论他的灵活性决对不在WinForm之下.WPF的出现更是引发一段热议.他的何去何从更是让很多人感 ...
- 全文搜索引擎 ElasticSearch 还是 Solr?
最近项目组安排了一个任务,项目中用到了全文搜索,基于全文搜索 Solr,但是该 Solr 搜索云项目不稳定,经常查询不出来数据,需要手动全量同步,而且是其他团队在维护,依赖性太强,导致 Solr 服务 ...
随机推荐
- Java接口,抽象类
1.接口(interface),接口被用来建立类与类之间关联的标准. 2.抽象类(abstract class),只要类中有一个抽象方法,此类就被标记为抽象类.实际上抽象类除了被继承之外没有任何意义. ...
- Spring和Struct整合的三个方法
1.使用Spring 的 ActionSupport .2.使用Spring 的 DelegatingRequestProcessor 类.3.全权委托. 无论用那种方法来整合第一步就是要为strut ...
- js标题文字向上滚动
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- Cocos3.0测试版发布(中文)
最新的cocos2d-x 3.0版本,我们的目标不仅是改进渲染机制,增加对2.5D的支持,基于组件的系统功能,和更好的Label功能.同时 我们希望能够进一步优化引擎,并且使用更友好的C++ API ...
- Linux下tomcat使用
http://tomcat.apache.org/download-70.cgi这里下载 放到Linux目录下,解压开, 默认port:8080能够直接使用 经常使用启动命令catalina.sh ...
- [Ruby] LEVEL 2 Methods and Classes
Optional Arguments Set default arguments, when we don't need to call it, we can simply skip it. def ...
- GCOV 使用用例
1.GCOV查看arm-linux代码覆盖率 一. 关于gcov工具 gcov伴随gcc 发布.gcc编译加入-fprofile-arcs -ftest-coverage 参数 ...
- codevs4203山区建小学
/* 状态:f[i][j] 前i个村庄已经建了j个学校 转移:f[i][j]=min(f[i][j],f[ii][j-1]+s[ii+1][i]) 1<=ii<=i-1 */ #inclu ...
- C#畅谈“网络电视”
C#畅谈“网络电视” 以上是大家比较喜欢的网络电视软件,例如:PPTV,BOX央视影音,PPS等. 今天我就和大家来聊一下简单的“网络电视”.虽然和上边的软件没发比,但是正在向着这个目标努力中…… 一 ...
- HDU3853
题意:给R*C的迷宫,起点为1,1 终点为R,C 且给定方格所走方向的概率,分别为原地,下边,右边,求到终点的期望. 思路:既然是求到终点的期望,那么DP代表期望,所以DP[i][j]=原地的概率*D ...