杂谈之不同行业的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 服务 ...
随机推荐
- 【OSGi】OSGi生命周期
1 生命周期管理 对于非模块化应用,生命周期将应用作为一个整体来操作: 而对于模块化应用,则可以以细粒度的方式来管理应用的某一个独立部分. OSGi生命周期管理 OSGi生命周期层有两种不同的作用: ...
- Appium移动自动化测试(四)--one demo(转)
Appium移动自动化测试(四)--one demo 2015-06-15 20:41 by 虫师, 40514 阅读, 34 评论, 收藏, 编辑 继续更新. ------------------- ...
- 根据类名查所属jar包
在开发时经常会参考一些现有的例子,但有些例子只有代码,代码中引用的类所属的jar包却没有明确说明,如何找到一个类所属的jar包,可以通过访问以下网址解决:http://www.findjar.com
- 如何评估oracle AWR 的在oracle 中的存储情况
如何评估oracle AWR 的在oracle 中的存储情况 如果把awr保存时间从默认的7天修改为30天,采样时间从1小时修改到更短,修改之后如何预估空间占用? ------------------ ...
- ubuntu firefox 选中变成了删除
在ubuntu下 我的firefox浏览器出现了问题.描述: 1.在firefox中所有能够删除的文字只要选中就自动删除了. 终端中 ibus-setup勾掉在应用窗口中启用内嵌编辑模式
- java 新建文件夹保存
String Txtname = field.getText(); File file3 =new File("D:\\MATP_robot"+&qu ...
- redis+keeplived分布式缓存
redis(三)redis+Keepalived主从热备秒级切换 博客分类: 分布式缓存Redis redis高可用Keepalived 一 简介 安装使用centos 5.10 Master 19 ...
- 案例:我行我素购物系统 v1.1
系统逻辑结构: import java.util.Scanner; public class ShoppingSystem { public static void main(String[] arg ...
- 模板-->Guass消元法(求解多元一次方程组)
如果有相应的OJ题目,欢迎同学们提供相应的链接 相关链接 所有模板的快速链接 简单的测试 None 代码模板 /* * TIME COMPLEXITY:O(n^3) * PARAMS: * a The ...
- ubuntu 查看端口被占用并处理
当启动程序出现端口号被占用的情况,需要查看端口使用情况,使用netstat命令,下面是常用的几个查看端口情况的命令:查看所有的服务端口(ESTABLISHED netstat -a查看所有的服务端口, ...