Arganzheng's Blog

stay hungry, stay foolish

ElasticSearch存储相关

版本 线上使用的是1.7.1版本,最新的ES版本是5.0,这个版本在功能和性能上做了很大的改进(Elasticsearch 5.0 新版本的特性与改进),所以我们也直接使用这个版本。 风险是这个版本相对比较新,是十一月中旬才release的版本,可能会有一些不稳定,资料也会比较少。另外,因为太新,很多第三方插件,如head,bigdesk,等,都还没有追上。 ...

卓有成效的程序员——Mac篇

作为一个资深程序猿,在linux、windows和mac下都进行过相当长的一段开发时间,是时候总结一下mac下的一些高效工作Tips了。 离线文档 有时候有些文档需要翻墙或者访问很慢,你可以将整个文档离线下载下来,在本地阅读。 登录能翻墙的服务器,使用wget的mirror功能下载整个网站: wget -m --no-check-certificate --convert-links...

过载保护

系统过载及其危害 系统过载就是当前负载已经超过了系统的最大处理能力。例如,系统每秒能够处理的请求是100个,但实际每秒的请求量却是1000个,就可以判定系统出现了过载。 通常可以用QPS、请求处理的平均时延等去评估系统处理能力,系统瓶颈指系统中最先接近极限的资源,一般系统资源包括CPU,内存,IO。 过载的出现,会导致部分服务不可用,如果处置不当,极有可能引起服务完全不可用,乃至雪崩。...

Git学习笔记

公司已经全面切换Git,我们的新项目刚好作为组内的第一个尝鲜项目。其实也用过Github一段时间了,对Git也不能说是完全小白。只是以前基本都是一个人作战,现在是多个人合作,刚好趁这个机会总结一下,让团队其他同事可以通过这篇文章快速的切换到Git来。 Git基础 1.1 Git配置 Git有三个级别的配置文件,分别是: 版本库级别的配置文件: 工程目录下...

搜索引擎中的相关性和排序截断

一般来说,检索需要解决两个问题: 召回:matching 排序和截断: ranking 召回就是使用经典的倒排索引,从query词检索出相关的文档,文档是否匹配query词。但是这些文档哪些在前哪些在后呢?这就涉及到排序和截断的问题了,这是一个ranking问题,这往往是搜索引擎最具有差异性,也是最核心的部分(比如Google的PageRank算法成就了伟大的谷歌公司)。 ...

protobuf中的反射

像Python,javascript这样的动态脚本语言具有很强的反射能力,即使是java这类的静态类型语言,也提供了一定程度的反射能力,而C/C++这样的纯静态语言没有运行时的类型信息,但是Protobuf本身具有很强的反射(reflection)功能,可以根据 type name 创建具体类型的 Message 对象,也能够动态获取和设置某个属性。 背景知识 protobuf对于每个元...

巧用protobuf的自定义options

知识图谱在线系统的schema除了定义每个实体的属性之外,还有一个信息需要策略同学告诉我们——就是哪些字段需要索引,以及索引的方式,这点非常类似于ElasticSearch的Mapping: PUT /my_index { "mappings": { "my_type": { "properties": { "status_code": { ...

Protobuf Buffer的缺陷

最近在搞知识图谱,知识图谱的模型比较统一——就是实体和关系。其中实体和关系可以挂载关联的属性,属性以key-value键值对存在。称之为Property Graph Model。 属性: Property: key->value 实体 Entity: (id) => (type, property*) 其中: t...

记一个诡异的C++问题

昨天联通一直遇到一个诡异的问题:服务某个接口一接受到请求就core dump了。用gdb查看core文件,也没有看出个所以然: 最后实在没有办法,只能采用排除法,把可疑的代码逐行注释掉,检查是不是还有core。因为是一跑就core,所以其实还是很快就定位到问题代码: class StrategyData { public: StrategyData(); inline s...

互联网广告系统学习笔记

广告变现方式 计费方式 结算方式 适用场景 CPT 品牌广告 CPM 有受众选择需求的品牌广告 CPC 竞价广告 CPS/CPA/ROI 效果类广告联盟/DSP...