jcr-jsr170
qingfengyang_1
这个作者很懒,什么都没留下…
展开
-
深入浅出jackrabbit之十四 分布式文档提取
/** *author:ahuaxuan *2009-09-24*/前言:本来针对jackrabbit这一系列的文章其实都是有顺序的,比如先讲索引的创建,然后讲索引的查询,等等,但是无奈总是有些横生的枝节,这些横生的枝节又让ahuaxuan有了一些新的想法。所以只能将这篇文章写到后面来了。 切入正题,今天这篇文章其实是对前面文本提取的一个补充。前面讲到文本提取的...2009-09-24 12:20:03 · 220 阅读 · 0 评论 -
深入浅出jcr之十二 key-value存储系统
作者:ahuaxuan 在写文章方面,惰性心理无时无刻不折磨着我,文章的标题已经列在那里很长时间,可是我就是不愿意打开,不愿意把心中所想描绘出来。类似的情况可能也折磨着很多的其他同学。虽然jackrabbit是一个小众的框架,看的人和想看的人非常的少,但是其中确实包含了很多值得我们学习和研究的技术和实现,当然也有很多不足,需要我们去改进。所以我强迫自己继续写下去。 ...2009-08-26 09:31:06 · 164 阅读 · 0 评论 -
深入浅出jcr之十一 jackrabbit改进要点
作者,ahuaxuan在看过前面的一系列文章之后,对于jackrabbit,我们脑海里应已经有了一幅比较清晰的图。接下来我们要思考的是如何提高搜索模块的性能。其中涉及到如何正确的使用lucene,如何让搜索模块专注的做它应该做的事情。我们先谈谈第一个话题:专注。 为什么先要谈专注呢?因为它最重要了,一个功能要能够高效的完成任务,那么它应该只做自己擅长的事情。否则就会引来别人怀疑...2009-08-18 18:22:05 · 269 阅读 · 0 评论 -
深入浅出jcr之十 redolog 和 recovery.docx
作者:ahuaxuan在前面的文章中,我们对jackrabbit做索引的流程有了较为深刻的认识,这个过程中包含了很多的特性,比如多线程作内存索引啊,文件系统的目录算法啊,文本提取的策略等等,在本文中,ahuaxuan将会继续描述jackrabbit在索引过程中的另一个特性。Redolog是jackrabbit中保证数据一致性的又一个特色。 本文将会阐述以下几点内容:1. ...2009-08-18 18:14:34 · 114 阅读 · 0 评论 -
深入浅出 jackrabbit 九 索引合并(下)
在上文中,ahuaxuan讲到了索引创建的主体流程,但是索引合并其实还有一个较为重要的细节ahuaxuan没有详细阐述。本文中,ahuaxuan将会详细阐述这个问题 本文分成两部分内容 1 考虑应用拓机时的数据正确性问题。 2 jackrabbit是如何解决这些问题的。 而这个细节将会直接影响我们对query...2009-07-22 14:16:34 · 124 阅读 · 0 评论 -
深入浅出 jackrabbit 八 索引合并(上)
我们从文本提取的逻辑中走出来,回到主体流程。在前面的文章中,我们可以看到一次索引创建的操作,可能会产生多个persistentindex对象,而这些对象其实代表着一个索引目录。随着创建索引的次数越来越多,那么索引目录也在增多,但是索引目录中的数据却不是很多,所以我们需要把多个目录合并,其实也就是索引的合并。 执行这个操作的类是IndexMerger,看其定义...2009-07-21 17:32:58 · 130 阅读 · 0 评论 -
深入浅出 jackrabbit 七 文本提取(下)
接上文,说到文本提取,在上一篇文章中,我们是管中窥豹,并没有把握住整体的流程,那么这篇文章就是用来弥补上一篇文章的不足的。 我们已经明确的知道,有一个队列,它的名字叫indexingqueue,它中存放的是待提取的document,下面我们就来看看它的生产者是谁: 1. 生产者我们在前面的文章中提到过,VolatileIndex(内存数据)的pendin...2009-07-21 17:29:27 · 135 阅读 · 0 评论 -
深入浅出 jackrabbit 六 文本提取(上)
用lucene作过索引的同学一定对文本提取不会陌生,但凡有binary需要作索引的地方,那就离不开文本的提取,而jackrabbit是可以存储二进制数据的,而这些二进制数据中包含的文本也是需要被搜索到的,所以jackrabbit里建索引的过程中自然离不开文本提取。那么看到本文的标题,有经验的同学一定会问,前面都已经讲过索引的提交了,为什么到现在才讲文本提取呢。要回答这个问题,我们必须来回顾...2009-07-21 17:27:01 · 169 阅读 · 0 评论 -
深入浅出 jackrabbit 之五 索引提交(下)
接上文,在上面一篇文章中,我们谈到了update中的Delete和Add下面我们来谈谈第三个大问题,就是flush的逻辑3 什么是flush大家可能已经沉浸于AddNode逻辑而不能自拔了,清醒一点,我们再次回到MultiIndex#update看看,有这么一段代码:if (flush) { flush(); }不...2009-07-14 17:53:15 · 94 阅读 · 0 评论 -
深入浅出 jackrabbit 之四 索引提交(上)
在上上篇文章中,我们了解了创建索引的一般流程,在上篇文章中,我们也已经明确的知道,一个node的哪些信息是需要加入到索引中去的,也就是jackrabbit是如何来创建document的。那么接下来我们就是要了解jackrabbit是如何把这些document加入到索引文件中去的。接下来我们需要回顾一下索引概览中的最后几句话:那么代码的主要逻辑在哪里呢?在DeleteNode和AddNo...2009-07-14 09:10:45 · 162 阅读 · 0 评论 -
深入浅出 jackrabbit 3 创建 document
/***作者:ahuaxuan 张荣华*日期:2009-07-01**/ 在上一篇文章中,ahuaxuan描述了jackrabbit中创建index的主体流程,同时也曾提到,在创建流程中有一个方法非常重要,它影响着整个query体系,这个方法便是createDocument。在本文中,ahuaxuan将和大家一起来探讨如何根据一个node来创建对应的document。 ...2009-07-01 13:03:16 · 160 阅读 · 0 评论 -
深入浅出 jackrabbit 2 索引概览
任何一个数据库都离不开一个技术----索引技术,jackrabbit作为内容仓库的开源实现亦不能例外,从前面的文章中我们已经清楚的知道jackrabbit使用lucene来进行索引任务和查询任务。而查询正是基于索引,所以在本文中,ahuaxuan将和大家一起来学习jackrabbit中建立索引的方法。 事实上,jackrabbit中建立索引的流程是比较冗长和复杂的,如同query一样,在本...2009-06-30 08:51:17 · 252 阅读 · 0 评论 -
深入浅出jcr之16 该死的RMI,我们需要HTTP+简单RPC协议
从这篇文章开始,ahuaxuan不再详细描述jackrabbit中的实现原理,而是把注意力放在jackrabbit中做的不好的地方,不敢说是批判,但是有些技术上的决策错误还是值得拿出来讨论讨论的。其中一个就是jackrabbit的客户端和jackrabbit server的通信方式--RMI。围绕这个问题我们可以展开一系列的讨论。本文分为几个部分1 为什么要抛弃RM...2009-12-12 13:22:21 · 150 阅读 · 0 评论 -
深入浅出 jackrabbit 十 查询概览
/** *author: ahuaxuan *date: 2009-06-20 */查询进阶在第一篇文章的例子中,我们看到jackrabbit中存放数据的流程还是比较清晰的,而且我们也基本确定了其中数据的存储方式,一颗m叉树。正如db一样,insert都是[color=red]看上去[/color]相对简单的,select相对总是没有这么简单的,如同关系数据库一样,ja...2009-06-20 10:29:54 · 435 阅读 · 0 评论 -
深入浅出 jackrabbit 1
/** * author:ahuaxuan(张荣华) * date:2009-05-19 */ Jcr : Java Content Repository --- java 内容仓库。话说很久以前,江湖上出了一个叫作jcr的兵器,这个东西呢确实有那么一点点的用处,于是他们就在小众的圈子里开始流行,于是各门各派都开发出来属于自己的jcr,但是后来发现,问题...2009-05-19 18:31:22 · 287 阅读 · 0 评论 -
深入浅出jackrabbit之十五 文档提取优化2.docx
/** *author:ahuaxuan *2009-10-22*/ 在上一篇文章中,我们讲到为什么要优化jackrabbit中的文档提取,同时也分析了进程模型和线程模型在分布式文档提取中的优劣。 在本文中,ahuaxuan将会介绍分布式文档提取的架构模型,以及它在整个非结构化数据库中的地位。 第二部分ahuaxuan将介绍几个用来提取文本的工具,然后将这些工具用在...2009-10-22 18:38:24 · 160 阅读 · 0 评论 -
深入浅出jackrabbit之十三 查询之AST和QT
简介:在前面的文章中,ahuaxuan已经指出jackrabbit查询的主体流程,主体流程只能帮助大家稍微了解一下jackrabbit的query module,要深入理解还得深入探索主体流程中的每一步。在这篇文章中ahuaxuan将着重描述AST的生成和QT(querynode tree)的生成。回顾上一篇文章,我们可以知道jackrabbit中的查询手段之一:xpath。下面我们还...2009-09-10 10:12:52 · 200 阅读 · 0 评论