君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理
  1057 随笔 :: 381 文章 :: 141 评论 :: 169万 阅读

06 2014 档案

摘要:使用Lucene来搜索内容,搜索结果的显示顺序当然是比较重要的.Lucene中Build-in的几个排序定义在大多数情况下是不适合我们使用的.要适合自己的应用程序的场景,就只能自定义排序功能,本节我们就来看看在Lucene中如何实现自定义排序功能. Lucene中的自定义排序功能和Java集合中的... 阅读全文
posted @ 2014-06-29 02:34 刺猬的温驯 阅读(1619) 评论(0) 推荐(0) 编辑

摘要:为什么选择跳表目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参考网上的代码,相当麻烦。用... 阅读全文
posted @ 2014-06-28 22:12 刺猬的温驯 阅读(199) 评论(0) 推荐(0) 编辑

摘要:问题描述:现在有非常大量的一堆对象,比如有几十亿甚至上百亿个。对象本身是什么可以忽略,每个对象都有唯一标识符和一个正整数属性值,属性值范围有限(不大于一亿)。在单核机器上,内存和磁盘空间充足,用什么方法可以最快地输出属性值最小的若干(如一万)个对象,要求输出结果按照属性值排序。先说个题外话。前几天面... 阅读全文
posted @ 2014-06-21 22:04 刺猬的温驯 阅读(271) 评论(0) 推荐(0) 编辑

摘要:问题描述:在单向链表中,每个结点都包含一个指向下一个结点的指针,最后一个结点的这个指针被设置为空。但如果把最后一个结点的指针指向链表中存在的某个结点,就会形成一个环,在顺序遍历链表的时候,程序就会陷入死循环。我们的问题就是,如何检测一个链表中是否有环,如果检测到环,如何确定环的入口点(即求出环长,环... 阅读全文
posted @ 2014-06-21 21:52 刺猬的温驯 阅读(393) 评论(0) 推荐(0) 编辑

摘要:1.1 频度统计法。频度统计法指以程序中语句执行次数的多少作为算法时间度量分析的一种方法。通常情况下,算法的时间效率主要取决于程序中包含的语句条数和采用的控制结构这两者的综合效果。因此,最原始且最牢靠的方法是求出所有主要语句的频度f(n),然后求所有频度之和。例如:如下形式的语句段:for (i=1... 阅读全文
posted @ 2014-06-21 18:43 刺猬的温驯 阅读(8038) 评论(0) 推荐(0) 编辑

摘要:连接器里面采用的什么样的数据结构,我们先从Document迭代器开始入手,具体的Document迭代器类都实现了DocumentList接口,该接口定义了两个方法public interface DocumentList { public Document nextDocument() throw... 阅读全文
posted @ 2014-06-15 18:36 刺猬的温驯 阅读(525) 评论(0) 推荐(0) 编辑

摘要:在哪里调用监控器管理对象snapshotRepositoryMonitorManager的start方法及stop方法,然后又在哪里调用CheckpointAndChangeQueue对象的resume方法获取List guaranteedChanges集合下面跟踪到DiffingConnector... 阅读全文
posted @ 2014-06-15 18:02 刺猬的温驯 阅读(819) 评论(0) 推荐(0) 编辑

摘要:通常一个SnapshotRepository仓库对象对应一个DocumentSnapshotRepositoryMonitor监视器对象,同时也对应一个快照存储器对象,它们的关联是通过监视器管理对象DocumentSnapshotRepositoryMonitorManagerImpl实现的Docu... 阅读全文
posted @ 2014-06-15 17:26 刺猬的温驯 阅读(1033) 评论(0) 推荐(0) 编辑

摘要:ChangeQueue类实现ChangeSource接口,声明了拉取下一条Change对象的方法 * A source of {@link Change} objects. * * @since 2.8 */public interface ChangeSource { /** * @retu... 阅读全文
posted @ 2014-06-15 16:44 刺猬的温驯 阅读(598) 评论(0) 推荐(0) 编辑

摘要:连接器通过监视器对象DocumentSnapshotRepositoryMonitor从上文提到的仓库对象SnapshotRepository(数据库仓库为DBSnapshotRepository)中迭代获取数据监视器类DocumentSnapshotRepositoryMonitor在其构造方法初... 阅读全文
posted @ 2014-06-15 15:39 刺猬的温驯 阅读(333) 评论(0) 推荐(0) 编辑

摘要:下面开始具体分析连接器是怎么与连接器实例交互的,这里主要是分析连接器怎么从连接器实例获取数据的(前面文章有涉及基于http协议与连接器的xml格式的交互,连接器对连接器实例的设置都是通过配置文件操作的,具体文件操作尚未详细分析(com.google.enterprise.connector.pers... 阅读全文
posted @ 2014-06-15 11:15 刺猬的温驯 阅读(461) 评论(0) 推荐(0) 编辑

摘要:编码问题一直困扰着开发人员,尤其在 Java 中更加明显,因为 Java 是跨平台语言,不同平台之间编码之间的切换较多。本文将向你详细介绍 Java 中编码问题出现的根本原因,你将了解到:Java 中经常遇到的几种编码格式的区别;Java 中经常需要编码的场景;出现中文问题的原因分析;在开发 Jav... 阅读全文
posted @ 2014-06-13 01:34 刺猬的温驯 阅读(378) 评论(0) 推荐(0) 编辑

摘要:I/O 问题可以说是当今互联网 Web 应用中所面临的主要问题之一,因为当前在这个海量数据时代,数据在网络中随处流动。这个流动的过程中都涉及到 I/O 问题,可以说大部分 Web 应用系统的瓶颈都是 I/O 瓶颈。本文的目的正是分析 I/O 的内在工作机制,你将了解到:Java 的 I/O 类库的基... 阅读全文
posted @ 2014-06-13 01:27 刺猬的温驯 阅读(361) 评论(0) 推荐(0) 编辑

摘要:本人在上文中提到,连接器实现了两种事件依赖的机制 ,其一是我们手动操作连接器实例时;其二是由连接器的自动更新机制上文中分析了连接器的自动更新机制,即定时器执行定时任务那么,如果我们手动操作连接器实例时,是怎么发出事件更新连接器实例的呢通过eclipse开发工具,追踪调用ChangeDetector接... 阅读全文
posted @ 2014-06-08 18:04 刺猬的温驯 阅读(292) 评论(0) 推荐(0) 编辑

摘要:我们在前面的文章已经看到,ConnectorCoordinatorImpl类也实现了ChangeHandler接口,本文接下来分析实现该接口的作用class ConnectorCoordinatorImpl implements ConnectorCoordinator, ChangeHan... 阅读全文
posted @ 2014-06-08 16:59 刺猬的温驯 阅读(481) 评论(0) 推荐(0) 编辑

摘要:下面来分析线程执行类,线程池ThreadPool类对该类的理解需要对java的线程池比较熟悉该类引用了一个内部类/** * The lazily constructed LazyThreadPool instance. */ private LazyThreadPool lazyThrea... 阅读全文
posted @ 2014-06-08 13:09 刺猬的温驯 阅读(401) 评论(0) 推荐(0) 编辑

摘要:从上文中的QueryTraverser对象的BatchResult runBatch(BatchSize batchSize)方法上溯到CancelableBatch类,该类实现了TimedCancelable接口,后者又extends了TimedCancelable接口,后者又extends了Ca... 阅读全文
posted @ 2014-06-08 01:33 刺猬的温驯 阅读(441) 评论(0) 推荐(0) 编辑

摘要:连接器里面衔接数据源与数据推送对象的是QueryTraverser类对象,该类实现了Traverser接口/** * Interface presented by a Traverser. Used by the Scheduler. */public interface Traverser { ... 阅读全文
posted @ 2014-06-07 23:24 刺猬的温驯 阅读(362) 评论(0) 推荐(0) 编辑

摘要:连接器是基于http协议通过推模式(push)向数据接收服务端推送数据,即xmlfeed格式数据(xml格式),其发送数据接口命名为PusherPusher接口定义了与发送数据相关的方法public interface Pusher { /** * Status indicating the ... 阅读全文
posted @ 2014-06-07 22:59 刺猬的温驯 阅读(647) 评论(0) 推荐(0) 编辑

摘要:创建并启动连接器实例之后,连接器就会基于Http协议向指定的数据接收服务器发送xmlfeed格式数据,我们可以通过配置http代理服务器抓取当前基于http协议格式的数据(或者也可以通过其他网络抓包工具抓取)// 设置代理 /Proxy proxy = new Proxy(Pr... 阅读全文
posted @ 2014-06-07 22:15 刺猬的温驯 阅读(739) 评论(0) 推荐(0) 编辑

摘要:XML 解析器通常是高性能、健壮应用程序的关键。传统的 XML 解析技术包括文档对象模型(Document Object Model,DOM)和 Simple API for XML (SAX)。现在有一种非常不错的名为 Streaming API for XML (StAX) 的创新型新解析技术,... 阅读全文
posted @ 2014-06-05 00:37 刺猬的温驯 阅读(345) 评论(0) 推荐(0) 编辑

摘要:HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。我们知道,HTTP 协议是以 ASCII 码传输,建立在 T... 阅读全文
posted @ 2014-06-01 02:39 刺猬的温驯 阅读(438) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示