搜索引擎
文章平均质量分 75
jimmee
这个作者很懒,什么都没留下…
展开
-
文本压缩笔记(一):总述
1. huffman codingabout five bits per character 2. Ziv-Lempel coding和Arithmetic Coding都是使用自适应的压缩方式 其中Arithmetic Coding更基础,它可以使一类基于它的自适应的压缩方法得以实现。 Ziv-Lempel about four bits per characte...原创 2013-07-04 22:41:09 · 161 阅读 · 0 评论 -
垂直搜索-爬虫部分
垂直搜索与通用搜索不同之处在于,通用搜索不需要理会网站哪些资源是需要的,哪些是不需要的,一并抓取并将其文本部分做索引。而垂直搜索里,我们的目标网站往往在某一领域具有其专业性,其整体网站的结构相当规范,并且垂直搜索往往只需要其中一部分具有垂直性的资源,所以垂直爬虫相比通用爬虫更加精确。垂直爬虫抓取数据分成三个步骤:list-crawling(列表url抓取),detail-crawling(...原创 2014-04-09 23:11:06 · 319 阅读 · 0 评论 -
Lucene的数字范围搜索 (Numeric Range Query)原理
0. 全文索引的核心就是倒排索引. 1. 若数字不支持范围查询, 直接变成字符串查找即可 2. 如果要支持范围查询, 直接的字符串存储支持么? 目前lucene要求term按照字典序(lexicographic sortable)排列,然后它的范围查询根据tii找到范围的起始Term,然后把这中间的所有的Term展开成一个BooleanQuery。...原创 2014-04-05 16:08:54 · 731 阅读 · 0 评论 -
lucene索引创建的理解思路
虽然lucene4很早就出来,但是这里仍然以lucene3.0为基础,理解lucene索引创建的思路: 1. 要记录正向信息 field的数据,fdx,fdt,依次写每个field的即可 词向量,tvx,tvd,tvf tvf是真正存储的地方,tvx是每个文档一项,具体包含第一个field的位置,其他field只要记录与覅一个field的偏移量即可 2. ...2014-06-29 23:12:36 · 103 阅读 · 0 评论 -
mapreduce的一些算法设计,优化等(2)
1. 反序(order inversion)模式 通过反序模式,我们可以控制中间结果进入reducer的顺序,从而在reducer中先计算出一些结果(根据先进入reducer的中间结果计算出),而这些结果对于高效处理后续的数据很有意义。要使用反序模式,需要先将算法中的操作序问题转化为一般排序问题。 以共现矩阵为例,要计算相对频率问题。 (1)strip...原创 2014-01-28 15:50:34 · 150 阅读 · 0 评论 -
mapreduce的一些算法设计,优化等(1)
本系列是根据书籍《Data-Intensive Text Processing with MapReduce.pdf》和工作中的一些mapreduce使用做的笔记:本篇针对《Data-Intensive Text Processing with MapReduce》第三章: 1. local aggregation(局部合并) IN-MAPPER COMBINING,也就是...原创 2014-01-27 17:15:56 · 317 阅读 · 0 评论 -
lucene的拼写检查的实现原理
1. 建索引时, 使用ngram的方式创建索引 SpellChecker的indexDictionary方法 private static void addGram(String text, Document doc, int ng1, int ng2) { int len = text.length(); for (int ng = ng1; ng &l...2014-06-08 18:19:32 · 203 阅读 · 0 评论 -
字符串相似算法-(3) NGram Distance
就是N-Gram version of edit distance public float getDistance(String source, String target) { final int sl = source.length(); final int tl = target.length(); if (sl == 0 || tl ...2014-06-08 17:54:45 · 1010 阅读 · 0 评论 -
字符串相似算法-(2) Levenshtein distance
编辑距离概念描述: 编辑距离,又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。例如将kitten一字转成sitting:sitten (k→s)sittin (e→i)sitting (→g)俄罗斯科学家Vladimir Levenshtein在196...2014-06-08 16:32:54 · 205 阅读 · 0 评论 -
字符串相似算法-(1) Jaro-Winkler Distance
Jaro-Winkler Distance 算法 这是一种计算两个字符串之间相似度的方法,想必都听过Edit Distance,Jaro-inkler Distance 是Jaro Distance的一个扩展,而Jaro Distance(Jaro 1989;1995)据说是用来判定健康记录上两个名字是否相同,也有说是是用于人口普查,具体干什么就不管了,让我们先来看一下Jaro Dis...原创 2014-06-08 12:05:25 · 544 阅读 · 0 评论 -
整理一下准备编写的笔记目录
工作6年,主要从事分布式服务器端开发(3年),做过垂直爬虫和搜索以及数据挖掘(2年),1年的产品的业务开发,学习过和使用过的东西,陆续会写笔记,在整理的同时,算是一种经验积累的记录吧。 tcp通信过程中的一些重要事项,udt的原理和源码分析,参看 http://jimmee.iteye.com/admin/blogs/2037451 系列图片处理垂直爬虫的注意点 ht...原创 2013-12-31 21:21:15 · 203 阅读 · 0 评论 -
两张类图理解lucene的索引过程
1. 基本处理链的类图 <!--[endif]-->2. 每个文档的线程处理链:原创 2013-12-06 13:47:10 · 231 阅读 · 0 评论 -
通用爬虫框架及heritrix爬虫介绍
第1部分 通用爬虫1.1 通用爬虫框架介绍 图1-1描述了通用的爬虫框架,其基本上包括了一个爬虫系统所需要的所有模块。任何一个爬虫系统的设计图,会发现都有一个环路,这个环代表着爬虫大致的工作流程:根据url将对应的网页下载下来,然后提取出网页中包含的url,再根据这些新的URL下载对应的网页,周而复始。爬虫系统的子模块都位于这个环路中,并完成某项特定的功能。 ...原创 2014-04-16 19:09:25 · 740 阅读 · 0 评论