架构深渊

慢慢走进程序的深渊……关注领域驱动设计、测试驱动开发、设计模式、企业应用架构模式……积累技术细节,以设计架构为宗。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

01 2009 档案

摘要:Code Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->/****************************************************** filename: copyright (c) 2003-xxxx **... 阅读全文

posted @ 2009-01-15 19:17 chen eric 阅读(350) 评论(0) 推荐(0)

摘要:1.软件介绍 qdown是一款开源的HTTP多线程下载软件。 特点:多线程,支持服务器重定向,支持断点续传。 平台:Solaris/FreeBSD/Windows(CygWin) 作者:小孙 2.如何使用 usage: qdown URL [thread_amount] [save as] example: qdown http://www.baidu.com/img/lo... 阅读全文

posted @ 2009-01-15 13:47 chen eric 阅读(1435) 评论(0) 推荐(2)

摘要:为什么我们需要线程同步? 多线程程序中,各线程可以理解为同时在执行(尽管在单处理器的系统中并不是真的在同时运行,但是表现出的现象是在同时运行,即使在多处理器的系统中也并不是任何时候多个线程同时在运行),我们不知道哪个线程哪个时间运行到了哪个地方,这受机器与操作系统的影响,在一些场合,我们必须要对线程的运行情况有所控制,使它们可以协同的工作。 例如在一个银行的系统中,当一个用户在取钱的时候,另一... 阅读全文

posted @ 2009-01-15 13:33 chen eric 阅读(5624) 评论(2) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->本文最早发表于CUIT技术网,为本人原创,如需转载请说明出处为本博客(www.csllm.cn)或CUIT技术网(icuit.cn) 我们进行多线程编程,可以有多种选择,可以使用Windows... 阅读全文

posted @ 2009-01-15 08:50 chen eric 阅读(6977) 评论(3) 推荐(1)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->“Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。 所有 Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes t... 阅读全文

posted @ 2009-01-14 10:54 chen eric 阅读(389) 评论(0) 推荐(0)

摘要:1、使用outLook提供的发送 如:我见过的用友软件U8生产制造(演示版),其中的邮件功能就是通过调用outLook的ActiveX 组件 字串1 优点:开发简单 字串7 缺点:依赖outlook组件,SMTP 邮件服务 字串2 邮件发送的代码如下: 字串3 以下为引用的内容: Private Sub Send() D... 阅读全文

posted @ 2009-01-13 13:41 chen eric 阅读(232) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->有时我们需要隐藏程序中的一些资源,比如游戏,过关后才能看到图片,那么图片就必须隐藏起来,否则不用玩这个游戏就可以看到你的图片了,呵呵。 本文就讲述了如何把文件(比如图片,WORD文档等等) 隐... 阅读全文

posted @ 2009-01-10 21:45 chen eric 阅读(700) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->接着上一篇,今天来做支持数据绑定的模板控件。 使用支持数据绑定控件的一般模式为 private void Page_Load(object sender, System.EventArgs e... 阅读全文

posted @ 2009-01-10 17:50 chen eric 阅读(720) 评论(2) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->再说一下,这部分内容最好的教材就是我一开始推荐的那个视频材料。如果还有没有下的那就赶快去下~~指不定哪天微软的网站被攻击,倒闭了,就没的下了。不过话说回来,如果微软都倒闭了,那我们还学.net干... 阅读全文

posted @ 2009-01-10 17:49 chen eric 阅读(981) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->DataGrid,DataList,Repeater三个数据控件都支持模板功能,比如下面是DataList的项模板, 在一般情况下,这个模板是我们在... 阅读全文

posted @ 2009-01-10 17:45 chen eric 阅读(446) 评论(0) 推荐(1)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 一、数据库操作 1、用完马上关闭数据库连接 访问数据库资源需要创建连接、打开连接和关闭连接几个操作。这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资 源。ASP.NET中... 阅读全文

posted @ 2009-01-09 16:40 chen eric 阅读(213) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//System.Web.UI.Control的 核心方法,属性和事件// /*-----------------------------------------------------... 阅读全文

posted @ 2009-01-09 15:55 chen eric 阅读(668) 评论(1) 推荐(0)

摘要:0 如何阅读本文? 如果你... ...希望了解联合的概念,请阅读“什么是联合?”。 ...希望了解联合的内存使用情况,请阅读“联合的内存布局与内存使用情况。”。 ...希望了解如何在C#中模拟联合,请阅读“第一次尝试:在C#中模拟这种布局方式。”。 ...希望了解在C++中使用联合有哪些要注意的地方,请阅读“在实际的C++代码中,我们是如何使用联合的?”。... 阅读全文

posted @ 2009-01-07 22:06 chen eric 阅读(992) 评论(1) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->该教程说明如何在 C# 中使用不安全代码(使用指针的代码)。易索博客t8_ be;Z9dNX'| 教程 在 C# 中很少需要使用指针,但仍有一些需要使用的情况。例如,在下列情况中使用允许采用指针的... 阅读全文

posted @ 2009-01-07 22:03 chen eric 阅读(926) 评论(1) 推荐(0)

摘要:我们知道为了让DLL导出一些函数,需要在每一个将要被导出的函数前面添加标识符:_declspec(dllexport).例如在DLL中可以导出这样的函数(方法) #define DLL1_API _declspec(dllexport) DLL1_API int Add(int a,int b) { return a+b; } 如果你想查看你的DLL的导出情况可以这样做,在你的VC安装目录下... 阅读全文

posted @ 2009-01-06 23:52 chen eric 阅读(4000) 评论(1) 推荐(0)

摘要:dll的导出 解决函数名称改写带来的问题 因为C++要支持函数重载功能,所以实际编译时会对函数的名称进行改写。 所以我们要加extern "C"来修饰一个函数,让该函数不被重写。 但是,如果使用标准调用方式__stdcall来修饰的函数即使使用了extern "C"来限定,仍然会把名字进行改写,这个时候可以使用def模块定义文件来限定函数的名称,不让编译器进行改写。 几种情况: 1 名字被... 阅读全文

posted @ 2009-01-06 23:31 chen eric 阅读(648) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->C# 和 API2008-04-01 13:17API (Application Programming Interface) is a set of commands, which interfaces... 阅读全文

posted @ 2009-01-06 22:54 chen eric 阅读(329) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->提供 .Net 下调用非托管Dll内部函数 的快捷方法2008年12月12日 星期五 下午 10:241,用C#实现一个DllImported 类,内部利用DllImport 访问kernel32.dll... 阅读全文

posted @ 2009-01-06 22:42 chen eric 阅读(371) 评论(0) 推荐(0)

摘要:Code Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->一、发生的背景 在开发新项目中使用了新的语言开发 C# 和新的技术方案 WEB Service,但是在新项目中,一些旧的模块需要继续使用,一般是采用 C 或 C++ 或 Delphi... 阅读全文

posted @ 2009-01-06 19:09 chen eric 阅读(233) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->摘 要:在《csdn开发高手》2004年第03期中的《化功大法——将DLL嵌入EXE》一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资源中释放出来,通过... 阅读全文

posted @ 2009-01-06 19:05 chen eric 阅读(241) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->上网baidu一下或google一下这个东东就有很多人在问这个问题,最近我也用到了这个,所以就留下来以备往后需要是可以查找。在调用非托管 DLL的APIs前,我们应该好好掌握一下DllImpor... 阅读全文

posted @ 2009-01-06 18:38 chen eric 阅读(274) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->如何逐步实现动态库的加载,类型的匹配,动态链接库函数导出的定义,参考下面宏定义即可: #define LIBEXPORT_API extern "C" __declspec(dllexport... 阅读全文

posted @ 2009-01-06 18:27 chen eric 阅读(613) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include #ifndef C_Class #define C_Class struct #endif C_Class A { C_Class A *A_this; void... 阅读全文

posted @ 2009-01-05 22:03 chen eric 阅读(241) 评论(0) 推荐(0)

摘要:// search.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "LinkTable.h" #define MAX_KEY 500 //------------------------------数组实现部分-----------... 阅读全文

posted @ 2009-01-05 21:53 chen eric 阅读(2571) 评论(2) 推荐(0)

摘要:C/C++ code #include using namespace std; //直接顺序排序 void InsertSort(int r[], int n) { for (int i=2; i=1; d=d/2) //以增量为d进行直接插入排序 { for (i=d+1; i0 && r[0]r[j+1]) { temp=r[j]; r[j]=r[j+1... 阅读全文

posted @ 2009-01-05 21:29 chen eric 阅读(377) 评论(0) 推荐(0)

摘要:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 分类 在计算机科学所使用的排序算法通常被分类为: 计算的复杂度(最差、平均、和最好表现),依据串列(list)的大小(n)。一般而言,好的表现是O。(n log n),且坏的行为是Ω(n2)。对於一个排序理想的表现是O(n)。仅使用一个抽象关键比较运算的排序算法总平均上总是至少需要Ω(n ... 阅读全文

posted @ 2009-01-05 20:59 chen eric 阅读(350) 评论(1) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->相关知识介绍(所有定义只为帮助读者理解相关概念,并非严格定义): 1、稳定排序和非稳定排序 简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序,我们就 说这种排序方法是稳定的。... 阅读全文

posted @ 2009-01-05 20:33 chen eric 阅读(2210) 评论(1) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->Windows对文件的读写提供了很丰富的操作手段,如: 1. FILE *fp, fstearm; (C/C++) 2. CFile, CStdioFile; (MFC) 3. CreateFi... 阅读全文

posted @ 2009-01-05 16:52 chen eric 阅读(1211) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 转载 原作者:冉林仓 来 源:chinaasp Api函数是构筑Windws应用程序的基石,每一种Windows应用程序开发工具,它提 供的底层函数都间接或直接地调用了Window... 阅读全文

posted @ 2009-01-05 11:29 chen eric 阅读(760) 评论(0) 推荐(0)

摘要:内部类共有四种: 1、静态内部类,只能使用外部类中静态成员,一般用处不大。 2、成员内部类,和外部类属性、方法并行的一种类,用法和方法差不多,他可以调用外部类的属性和方法,满有用的。 3、方法内部类,定义在方法里面,可以访问外围类中的属性和方法,以及方法中的final常量。没什么用,因为第四种比他简单。 4、匿名内部类,用得最多,通过扩展接口或别的类实现,用法和方法内部类一样,写起来简单些。 为什... 阅读全文

posted @ 2009-01-05 11:04 chen eric 阅读(544) 评论(0) 推荐(1)

摘要:如何自己实现IEnumerable和IEnumerator接口以支持foreach语句 2008/10/11 12:22 在C#中,凡是实现了IEnumerator接口的数据类型都可以用foreach语句进行迭代访问,可是,对于自定义类型如何实现这个接口以支持foreach的迭代呢?要实现这个功能,先来看看IEnumerable和IE... 阅读全文

posted @ 2009-01-05 09:54 chen eric 阅读(1303) 评论(1) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 新建网页 1 loading 阅读全文

posted @ 2009-01-04 12:38 chen eric 阅读(4728) 评论(2) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->js脚本在不同的浏览器下存在兼容性问题,遇到一个利用iframe引用网页,高度自调整问题。同样在IE下可以通过的脚本在iframe下没有效果。 查找资料得如下代码: 方法一: var... 阅读全文

posted @ 2009-01-04 11:59 chen eric 阅读(602) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->* - - - - - - - - - - - - - - - - - - - - - - - - * Stream 和 byte[] 之间的转换 * - - - - - - - - - - - - ... 阅读全文

posted @ 2009-01-02 15:09 chen eric 阅读(305) 评论(0) 推荐(0)

摘要:本文适合初学编程的程序员阅读,它对比了几种编程语言在解决同一问题的时候的运效率。并通过具体的例子进行了量化分析。主要目的是帮助初学者认识各种编程语言的特质,并且能够理性的选择适合的编程语言来进行工作。 事发 我无聊的翻着散落案头的书籍,这些都是五花八门的关于编程和系统管理的著作。干了这么多年程序员,大大小小的软件和项目也做了无数。每每有新入行的朋友问我这个所谓的"老前辈":哪种语言最... 阅读全文

posted @ 2009-01-02 13:16 chen eric 阅读(3291) 评论(4) 推荐(2)

摘要:乱弹ASM/C/C++/Java/C#效率 效率主要有执行效率和开发效率两个方面。 这几种语言的... 阅读全文

posted @ 2009-01-02 13:09 chen eric 阅读(2295) 评论(2) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 2007-05-05 12:34 在c#多线程里面要用到ManualResetEvent ,从msdn上找到这个示例,可以对此有一个感性认识。 示例阐释了如何使用等待句柄来发... 阅读全文

posted @ 2009-01-02 12:47 chen eric 阅读(319) 评论(0) 推荐(0)

摘要:这是一篇简单介绍了使用c#来进行文件的合并和分割,我在我的项目中,需要使用到这个模块的功能,所以自己实践之后,发于此,以作备份: 首先,我们先来做文件分割的部分,我们新建了个winform项目,项目设计如下: 这里有如下控件: 一个OpenFileDialog组件,用于选择要分割的大文件。 一个ProgressBar组件,用以显示文件分割的进度。 一个ComboBox组件,用以选... 阅读全文

posted @ 2009-01-02 12:07 chen eric 阅读(480) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->摘要: 本文给出了一种方便实用的解决大文件的读取、存储等处理的方法,并结合相关程序代码对具体的实现过程进行了介绍。 引言 文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供... 阅读全文

posted @ 2009-01-02 12:05 chen eric 阅读(367) 评论(0) 推荐(0)

摘要:问题为:yield return关键字怎么使用? 答案: 在迭代器块中用于向枚举数对象提供值或发出迭代结束信号。它的形式为下列之一: 复制代码 yield return ; yield break; 备注 计算表达式并以枚举数对象值的形式返回;expression 必须可以隐式转换为迭代器的 yield 类型。 yield 语句只能出现在 iterator 块中,该块可用作方法、运... 阅读全文

posted @ 2009-01-02 11:08 chen eric 阅读(368) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->委托推理 C#编译器从匿名方法指派推理哪个委托类型将要实例化的能力是一个非常重要的功能。实际上,它还提供了另一个叫做委托推理的C# 2.0功能。委托推理允许直接给委托变量指派方法名,而不需要先使用... 阅读全文

posted @ 2009-01-02 01:59 chen eric 阅读(233) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->匿名方法的实现 编译器为匿名方法生成的代码很大程度上依赖于匿名方法使用的参数或变量的类型。例如,匿名方法使用其包含方法的局部变量(也叫做外层变量)还是使用类成员变量和方法参数。无论是哪一种情况,编... 阅读全文

posted @ 2009-01-02 01:57 chen eric 阅读(205) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->局部类型 C# 1.1中要求将类的全部代码放在一个文件中。而在C# 2.0允许将类或结构的定义和实现分开放在多个文件中。通过使用新的partial关键字来标注分割,可以将类的一部分放在一个文件中,而将... 阅读全文

posted @ 2009-01-02 01:56 chen eric 阅读(267) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->迭代器实现 编译器通过生成的嵌套类来维护迭代状态。当在foreach循环中(或在直接的迭代代码中)首次调用迭代器时,编译器为GetEnumerator函数产生的编译生成(Compiler-Genera... 阅读全文

posted @ 2009-01-02 01:54 chen eric 阅读(245) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->第二个问题迭代器的实现也是难以解决的问题。虽然对于简单的应用实例中(如图3所示),实现是相当简单的,但是对于高级的数据结构,实现将非常复杂,例如二叉树,它需要递归遍历,并需在递归时维持迭代状态。另外,... 阅读全文

posted @ 2009-01-02 01:53 chen eric 阅读(251) 评论(0) 推荐(0)

摘要:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 热衷于C#语言的人会喜欢上Visual C# 2005。Visual Studio 2005为Visual C# 2005带来了大量令人兴奋的新功能,例如泛型、迭代器、局部类和匿名方法等。虽然泛型是人... 阅读全文

posted @ 2009-01-02 01:52 chen eric 阅读(249) 评论(0) 推荐(0)

摘要:IEnumerable和IEnumerator有什么区别?这是一个很让人困惑的问题(在很多forum里都看到有人在问这个问题)。研究了半天,得到以下几点认识: 1、一个Collection要支持foreach方式的遍历,必须实现IEnumerable接口(亦即,必须以某种方式返回IEnumerator object)。 2、IEnumerator object具体实现了iterat... 阅读全文

posted @ 2009-01-02 00:57 chen eric 阅读(376) 评论(0) 推荐(0)

摘要:第五章 5.4 PageRank算法改进 Improvement for PageRank Algorithm PR算法的复杂度规模是log(n),n是网页的数量。网页权值在算法执行过程中是一个振荡收敛的过程,这其中有两个主要矛盾:1.节点的数量巨大,内存成为瓶颈之一。2.巨大的2维矩阵每次计算消耗时间巨大,时间效率上也是瓶颈;其中大部分网页的权值比较低,而且都是浮点数计算。 改进思路一:迭... 阅读全文

posted @ 2009-01-02 00:28 chen eric 阅读(542) 评论(0) 推荐(0)

摘要:第五章 5.3 影响排名的其他因素 Other Factors 域名中以gov,edu,org结尾的网站应该具有较高的网页权值。Gov是政府网站后缀,edu是教育机构,org指非盈利的组织。 搜索引擎的基本设计思路是若干个结果去覆盖相应用户需求,其中可能有大量不相关的内容存在,如果使得比较优质的结果保留下来,并且能使得后面使用的用户能方便地搜索到?点击率成了重要的判断数据。因此,上一节中提到... 阅读全文

posted @ 2009-01-02 00:28 chen eric 阅读(247) 评论(0) 推荐(0)

摘要:第五章 5.2 得分规则 An Simple Scoring Rule 出现关键词频度初始得分表 同一位置频度 1 2-3 4-7 8 ... 阅读全文

posted @ 2009-01-02 00:27 chen eric 阅读(461) 评论(0) 推荐(0)

摘要:第五章 5.1 网页等级算法全面阐释 Analysis of PageRank Algorithm 互联网发展早期的搜索引擎,对web页面的排序,是根据搜索的词组(短语)在页面中的出现次数,并用页面长度和html标签的重要性提示等进行权重修订。链接流行度技术通过其它文档链接到当前页面链入数量来决定当前页的重要性,这样可以有效地抵制被人为加工的页面欺骗搜索引擎的手法。PageRank计算页面的... 阅读全文

posted @ 2009-01-02 00:26 chen eric 阅读(440) 评论(0) 推荐(1)

摘要:第五章 排序规则 Ranking Rules 用户输入查询关键词的时候需要对结果集作排序,如何排序这些网页使得最佳的结果呈现在前二十条结果中呢?主要因素有网页等级,关键词位置、关键词出现频率,用户点击日志等。 阅读全文

posted @ 2009-01-02 00:26 chen eric 阅读(265) 评论(0) 推荐(0)

摘要:第四章 4.3 分词原理 Chinese Word Parsing Algorithm 对索引网页信息的预处理包括网页分析和倒排文件索引两个部分,中文自动分次是网页分析的前提。文档由被称作特征项的索引词组成,网页分析是将一个文档表示 为特征项的过程。在提取特征项时,中文又面临了与英文处理不同的问题。中文信息和英文信息有一个明显的差别:英语单词之间用空格分隔;而在中文文本中,词 与词之间没有天... 阅读全文

posted @ 2009-01-02 00:25 chen eric 阅读(628) 评论(0) 推荐(0)

摘要:第四章 4.2 倒排索引基本原理 Principle of Inverted Index Trie是效率最高的索引形式,下图表示由文本到的前缀树的创建过程。 插入操作的时间复杂度O(l),其中l = max(length of word); 查询的操作的时间复杂度O(l); 删除操作的复杂度为O(n),其中n = length of dictionary Trie有消耗了大量内存且难以分... 阅读全文

posted @ 2009-01-02 00:24 chen eric 阅读(886) 评论(0) 推荐(0)

摘要:第四章 4.1 准备工作 Prepare for Indexing 网页的内容经过爬虫爬取之后,按照不同的类型进行分析,成为相对“清洁”的文本之后就可以开始建立全文索引了。分析的过程包括大小写转换,过滤标点符号、没有意义的虚词和网页的格式代码。可以把分析看成是一个过滤的过程。 阅读全文

posted @ 2009-01-02 00:23 chen eric 阅读(194) 评论(0) 推荐(0)

摘要:第四章 索引 Full Text Indexing 在学习搜索引擎技术之前最好有一定的知识储备,Modern Information Retrieval 是本经典IR的教材,本文默认读者已经具有相应的基础。 数据需要分不同的类型进行相应处理,一般的网页内容文本大致可以分为四部分: Keyword: 不做分析,逐字/词建索引并存储.例如URL,文件系统路径,日期,人名,社会保险帐号,电话号码等。... 阅读全文

posted @ 2009-01-02 00:22 chen eric 阅读(490) 评论(0) 推荐(0)

摘要:第三章 3.4 缓存 Search Engine Caching 缓存优化的核心思想是从避免无谓和重复的CPU计算、I/O调度来提高查询器的吞吐量。传统的缓存有两级:一是对结果集的缓存,纪录了查询的关键词和返回结果。如果相同的关键词被再次访问将得到快速地响应,同时过滤导致重复查询的计算量,提高系统的吞吐量。另外一个是对倒排索引的缓存,索引通常只保留最近、频繁被访问的索引段在内存中。这样的两级体... 阅读全文

posted @ 2009-01-02 00:22 chen eric 阅读(398) 评论(0) 推荐(0)

摘要:第三章 3.3 排队系统的优化 Application of Queueing Theory 排队系统的优化在集群计算中有着举足轻重的地位。此类优化问题分为两类:系统的最优设计和最优控制,前者称为静态最优问题,目的在于是系统达到最大效益,或者说在一定指标下是系统最为经济;后者为动态最优问题,是指对一给定的系统,如何运营可使给定的目标函数达到最优。 只对静态优化分析,对动态优化超出了目前以有的固... 阅读全文

posted @ 2009-01-02 00:21 chen eric 阅读(626) 评论(0) 推荐(0)

摘要:第三章 3.2 文件共享入门简介 Introduction of File Sharing System 1) Remote sync (rsync) 是一种简单的文件共享实现方式。集群中的每个节点都至少有一份数据复本,复本间使用rsync进行同步。因为节点需要的数据就在本地,所以这种方法具有很高的可用性,不会出现单点失效现象。适合的场景:数据量很小,而且更新不频繁,可以采用这种方式。索引文件... 阅读全文

posted @ 2009-01-02 00:21 chen eric 阅读(250) 评论(0) 推荐(0)

摘要:第三章 3.1 I/O调度方式 Choose I/O Schedule Completely Fair Queuing 机制和其字面的意思一致,完全公平的调度形式。每个进程产生的I/O请求都会被分配一个序号,进程之间的I/O请求队列独立,每次执行相同序号的请求。算法的实现,cfq会先考虑进程的优先级(0-20),从高的优先进程选择执行序号比较优先的I/O请求。Analysis and Simu... 阅读全文

posted @ 2009-01-02 00:20 chen eric 阅读(520) 评论(0) 推荐(0)

摘要:第三章 并行分布式文件系统 Parallel Distributed File System 搜索的引擎的存储规模至少都是TB级别,如何有效地管理和组织这些资源呢?并且在极短的时间内得出结果?MapReduce: Simplified Data Processing on Large Clusters 给出了很好的分析。 分布式文件系统的实施必须实现两种临界资源的接口,一个是文件名到命名空间... 阅读全文

posted @ 2009-01-02 00:20 chen eric 阅读(351) 评论(0) 推荐(0)

摘要:第二章 2.2 宏观看爬虫 Key Points of Spider Web上的信息具有异质性和动态性,由于受时间和存储、带宽的限制,不可能把所有的网页都搜集起来,一个好的搜集策略是有限搜集重要的网页。对于网页的重要程度的评定,要依据搜集信息所针对的不同应用而定,从而信息的搜集可以采取不同的策略。而目前这个问题尚无定论,一般按照如下几种指标来共同确定网页的重要性: 1)网页的入度大,也就是被引... 阅读全文

posted @ 2009-01-02 00:19 chen eric 阅读(270) 评论(0) 推荐(0)

摘要:第二章 2.1 书籍推荐 Spidering Hacks 标题其实一本经典的爬虫学习书,历史地、全面地介绍了spider。 阅读全文

posted @ 2009-01-02 00:19 chen eric 阅读(401) 评论(0) 推荐(0)

摘要:第二章 爬虫 Spider 简单地说,爬虫负责按照url列表爬取网页的内容,实际中需要针对不同的协议设计爬虫程序并优化。写一个优秀的爬虫不是件容易的事情,仅列举部分设计必须考虑到的问题。 1.严格按照robots.txt 来爬取内容,优先按照sitemap来抓取。 2.控制抓取的深度,量力而行。这个和人吃饭一次吃多少的道理是一样的。 3.网络上动态网页数量巨大,而爬虫一般是多线程的,如果爬虫对... 阅读全文

posted @ 2009-01-02 00:18 chen eric 阅读(568) 评论(0) 推荐(0)

摘要:第一章 1.2 声明 Declaration 本文的主旨是提供学习的基本导向,并对一些重要的技术细节进行剖析,舍去很多拖沓的描述,力图给读者深度和广度全面的理解web搜索的基本机制。 /**********本文并不申明为权威工程应用指南************/ 阅读全文

posted @ 2009-01-02 00:18 chen eric 阅读(240) 评论(0) 推荐(0)

摘要:第一章 1.1 兴趣的开始 Game Is Now Beginning Web上数十亿张网页,认真地在网络上乱逛发现最大的需求是:哪里有好东西?我们能用它们来做什么?每个人对他们自己认为的有效信息有不同的看法,且大多数人当他们一旦找到好东西的时候,总是有一些创造性的电子。在某些web的角落,鼓励用有趣的方式来重新组织和运用这些资讯,而这些不平凡的资讯组合不容怀疑地向前流动,他们相信信息时代的到... 阅读全文

posted @ 2009-01-02 00:17 chen eric 阅读(339) 评论(0) 推荐(0)

摘要:第一章 概述 Summarization of Search Engine Architecture 搜索引擎的架构是编写一个搜索引擎所需要考虑的第一个问题,The Anatomy of a Large-Scale Hypertextual Web Search Engine 一文对此问题做了全面的阐述。最大的功能模块可以分为:爬虫、存储、索引和web服务。爬虫负责不间断地爬取目标网站的内容... 阅读全文

posted @ 2009-01-02 00:16 chen eric 阅读(381) 评论(0) 推荐(0)

摘要:一直想找到一个好的同义词解决方案,在百度和google查找,大家对于这个问题都只是寥寥数语,不愿讲清,我在javaeye搜此类信息也求不到,后来发了个提问贴也只有浏览数而无回复,不知道这是什么原因,无奈之下我只有自己研究。 因为没有其它的解决方案可以借鉴,以下纯为我个人的见解。 我认为所谓近义词、关联词检索不外乎以下三种形式: 1.类似google suggest,用户... 阅读全文

posted @ 2009-01-02 00:07 chen eric 阅读(1658) 评论(1) 推荐(0)

摘要:Lucene是一个高性能的java全文检索工具包,它使用的是倒排文件索引结构。该结构及相应的生成算法如下: 0)设有两篇文章1和2 文章1的内容为:Tom lives in Guangzhou,I live in Guangzhou too. 文章2的内容为:He once lived in Shanghai. 1)由于lucene是基于关键词索引和查询的,首先我们要取... 阅读全文

posted @ 2009-01-02 00:06 chen eric 阅读(231) 评论(0) 推荐(0)

摘要:倒排文件的组织与最佳归并分析赵长林(西南民族学院数学系)摘要对倒排文件的组织与最佳归并进行较系统的分析,提出了倒排文件的存储结构与实现的方法,倒排文件上的算法分析,最佳归并顺序的分析与论证。关键词倒排文件,倒排表,最佳归并,最佳归并树中图法分类号TP31在数据库应用系统中,一项主要的工作是对文件的组织与操作,概括地讲,操作主要分两类,一类是检索,一类是修改,修改的前提是查找,成批查找记录就是检索... 阅读全文

posted @ 2009-01-01 23:56 chen eric 阅读(396) 评论(0) 推荐(0)

摘要:自动分词是基于字符串匹配的原理进行的;所谓自动分词方法,指的是汉字字符串匹配 的进行方式。 1. 最大匹配法 亦称MM法;其基本思想是这样的,假设自动分词词典(或词库)中的最 长词条是i个字,则取被处理材料当前字符串序列中的前i个字作为匹配字段,查找词 典,若词典中存在这样的一个i字词,则匹配成功,匹配字段被作为一个词切分出来; 如果在词典中找不到这样一个i字词,则匹配失败,匹配字段去掉... 阅读全文

posted @ 2009-01-01 23:54 chen eric 阅读(700) 评论(0) 推荐(0)