写在前面的话

摘要: 屈指算算,从接触计算机到现在,已经过去了12个年头,其中做全职程序员也有3个年头了。 这些年来我频繁查阅互联网上的资源,也免费使用许多优秀的开源代码。感谢互联网提供的知识海洋,它让我们获取知识的方式变得如此便捷。 我曾经注册过许许多多的网络账号,如今它们大多我已忘记。 我曾经也注册过blog,但只是心血来潮时转载几篇别人的文章,即便自己写也是兴致所至胡写一通。 现在我想把我的一点想法记录下来,就选择这里吧,因为我是程序员。 或许我记下来的很不成熟,但它只是我的一个想法而已,一个供我记笔记的地方而已,我尽可能减少错误不产生误导,如果我的笔记能够给你带来一点点帮助,那我就感到很高兴了。 互联网是. 阅读全文
posted @ 2012-03-10 14:45 hercules 阅读(96) 评论(0) 推荐(0) 编辑

KMP算法学习

摘要: 先贴上一点代码,等脑子清醒点再好好理解// 求next数组 public static int[] getNext(String pattern) { int len = pattern.length(); char[] pattern_ary = pattern.toCharArray(); int i = 0; int[] next = new int[len]; next[0] = -1; int j = -1; while(i < len - 1){ if(j == -1 || pattern_ary[i] == pattern_ary[j]... 阅读全文
posted @ 2012-03-06 23:31 hercules 阅读(138) 评论(0) 推荐(0) 编辑

什么是倒排索引?

摘要: 索引 是用来更快的找出需要的信息。我们一般理解的索引都是正向索引,如数据库表文档id字段1字段2字段4字段4文档1单词e单词b单词e单词g文档2单词c单词c单词d单词a文档3单词a单词a单词c单词f在这里 文档id是主键如果我们想查找 '单词a‘ ,我们需要从文档1开始逐个列逐个字段去遍历查找才能得出结果那么搜索引擎怎么做呢如果是把 列x 看成是 一篇文章 字段x 对应的是该文章的单词,用上面的这个表进行存储的话,我们需要多少列呢?当查找的时候又该如何查找呢?每篇文件都由不同的单词组成,单词各不相同,又或多或少。显然,如果使用上面这个表进行存储,效率低下不说,限于目前计算机的条件,也是 阅读全文
posted @ 2012-03-05 21:54 hercules 阅读(284) 评论(0) 推荐(0) 编辑

lucene3.5学习笔记02--创建索引和建立搜索

摘要: 先大致了解一下lucene的组成结构lucene的组成结构:对于外部应用来说索引模块(index)和检索模块(search)是主要的外部应用入口org.apache.Lucene.search/搜索入口org.apache.Lucene.index/索引入口org.apache.Lucene.analysis/语言分析器org.apache.Lucene.queryParser/查询分析器org.apache.Lucene.document/存储结构org.apache.Lucene.store/底层IO/存储结构org.apache.Lucene.util/一些公用的数据结构接下来,我们构建 阅读全文
posted @ 2012-03-04 18:04 hercules 阅读(183) 评论(0) 推荐(0) 编辑

lucene3.5学习笔记01--搭建开发环境

摘要: 久闻全文检索引擎lucene的大名,正好最近手头工作告一段落,我准备花时间好好学习一下。 废话不多说,先把环境搭起来吧。 准备工作下载lucene3.5源码包 点这里将lucene3.5源码导入eclipse工程导入后的工程如下图test里面都是单元测试类,有兴趣可以运行一下试试,当然你也可以直接参考这些测试代码来理解lucene的功能运行这些测试类需要开启jvm的断言功能,因为jvm的断言功能默认是关闭的你可以在每个运行里面的vm参数里面加上 -ea我比较偷懒,直接加载虚拟机处了,这样就不用每次都跑到运行里面加好了,环境搭起来了,也没有报错的警告,可以慢慢品读lucene的源码了发现... 阅读全文
posted @ 2012-03-04 16:51 hercules 阅读(211) 评论(0) 推荐(0) 编辑

简单寻找连续段

摘要: 已排序的[1,2,3,5,6,8,10,11,12,13,15] 要求输出,即找出连续的一段一段 "1-3" "5-6" "8" "10-13" "15" public static void main(String[] args) { // 源数组 int[] src = {1,3,4,5,7,9,11,12,14,16}; // 增量 int interval = 1; // 初值 int begin = src[0]; ... 阅读全文
posted @ 2012-03-04 09:48 hercules 阅读(139) 评论(0) 推荐(0) 编辑