摘要: document: 相当于数据块里的一条记录field: 相当于数据库里的一列term: 指某个field的词,英文单词一般会转词的原型tf:term在field内的词频率函数df:term在全文档集合内的频率函数idf:term在全文档集合内的逆向频率函数(一般取反再取log)position i... 阅读全文
posted @ 2014-11-06 00:42 白帆mvp 阅读(644) 评论(0) 推荐(0) 编辑
摘要: 取topN无序倒排表的合并操作 阅读全文
posted @ 2014-11-05 23:28 白帆mvp 阅读(142) 评论(0) 推荐(0) 编辑
摘要: keepalived是一个用于做双机热备(HA)的软件,常和haproxy联合起来做热备+负载均衡,达到高可用。运行原理keepalived通过选举(看服务器设置的权重)挑选出一台热备服务器做MASTER机器,MASTER机器会被分配到一个指定的虚拟ip,外部程序可通过该ip访问这台服务器,如果这台... 阅读全文
posted @ 2014-10-28 16:00 白帆mvp 阅读(14431) 评论(0) 推荐(0) 编辑
摘要: VRRP协议介绍参考资料: RFC 37681. 前言VRRP(Virtual Router Redundancy Protocol)协议是用于实现路由器冗余的协议,最新协议在RFC3768中定义,原来的定义RFC2338被废除,新协议相对还简化了一些功能。2. 协议说明2.1 协议VRRP协议是为... 阅读全文
posted @ 2014-10-28 10:03 白帆mvp 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现。LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载。HAProxy相比LVS的使用要简单很多,功能方面也很丰富。当 前,HAProxy支持两种主要的代理模式:... 阅读全文
posted @ 2014-10-27 18:46 白帆mvp 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 桶排序的核心思想就是分治处理数据,把数据按照大小分发到各个区间(区间内数据保证有序,数据结构可以使用链表,方便分发过来的新数据插入)。假设有N条数据是分布在一个固定的区间内(0,n),现在要对其排序,桶排序步骤如下1 把(0,n)划分成m个区间,像这样 (0,n/m),(n/m+1, 2n/m),(... 阅读全文
posted @ 2014-10-26 21:54 白帆mvp 阅读(190) 评论(0) 推荐(0) 编辑
摘要: Python里面的import和from import都是用于导入一个模块,两者的区别是如果你在使用某模块内函数时不想写模块名,那么就用from import方式导入,如果是用import方式就要写模块名 比如sys.argv 如果你不想写sys 那么在代码开头就应该这样写from sys impo... 阅读全文
posted @ 2014-10-26 21:00 白帆mvp 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 这里面要重点关注的是内存 120ns固态盘 50-150us机械磁盘 1-10ms 固态盘和内存差了3个数量级,可见固态盘和内存还是很有差距的机械盘和内存差了4-5个数量级,效率惨不忍睹。所以写存储系统尽量把能干的事情干完在存磁盘,不要反复读取磁盘,考虑存储方面的算法不能只是看复杂... 阅读全文
posted @ 2014-10-22 17:22 白帆mvp 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 相关的类调用关系DocumentsWriterPerThread ——>DocFieldProcessorDocumentsWriterPerThread里的consumer对象(类型是DocFieldProcessor)负责field的内数据的存储1 consumer.processDocumen... 阅读全文
posted @ 2014-10-21 17:33 白帆mvp 阅读(528) 评论(0) 推荐(0) 编辑
摘要: 当两个字符串进行顺序匹配出现某字符匹配不正确时,被匹配字串的开始位置要回退,这是个不效率的工序,而KMP就是用来尽量减少回退的位置,使得重复工序降低。KMP算法的关键思路:1 先是按照正常的字串匹配方式进行匹配。2 一旦在匹配到第N+1项匹配失败时,计算匹配字符串前N项字串的”前缀“和”后缀“子串中... 阅读全文
posted @ 2014-10-21 17:31 白帆mvp 阅读(260) 评论(0) 推荐(0) 编辑