- 浏览: 143496 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
95546772:
我的QQ是 95546772
使用Jencks实现Hibernate与Jackrabbit的分布式事务 -
95546772:
您好,我正在学习jackrabbit.谷歌的连接失效了.能否发 ...
使用Jencks实现Hibernate与Jackrabbit的分布式事务 -
chenjson_chen:
楼主的这个说明,解答了现在项目中遇到的问题
关于Spring嵌套事务 -
beykery:
没必要这么写。。。。
回收DirectByteBuffer -
lc_windson:
楼主,关于这一块,我遇到了一个很困惑的问题,分析.tii文件的 ...
Lucene索引文件解析之“项”
从1.4版本之后,jackrabbit开始支持节点的属性索引配置.换句话说,我们可以通过配置决定哪种类型节点的哪些属性应该建立索引.这样一来,我们就能对索引内容进行优化,使得搜索更为高效.
索引配置文件也是一个XML,默认名字为indexing_configuration.xml.默认情况下,jackrabbit不会有索引配置的存在,因此要想使用它就必须在repository.xml和workspace.xml中,为SearchIndex元素添加一个参数.
示例:
<param name="indexingConfiguration" value="${wsp.home}/indexing_configuration.xml"/>
上例中,value指明了配置文件存在的相对路径,它与workspace.xml位于同一个路径下.
接下来,看看哪些问题可以通过索引配置解决.
问题1 如何只给特定的属性建立索引?
示例:
<?xml version="1.0"?> <!DOCTYPE configuration SYSTEM "http://jackrabbit.apache.org/dtd/indexing-configuration-1.0.dtd"> <configuration xmlns:nt="http://www.jcp.org/jcr/nt/1.0"> <index-rule nodeType="nt:unstructured"> <property>Text</property> </index-rule> </configuration>
上例中,索引规则定义了nt:unstructured节点类型下,名为Text的属性需要建立索引.这条规则对nt:unstructured子类型也有效.
问题2 如何调整特定类型或属性的查询相关度?
示例:
<?xml version="1.0"?> <!DOCTYPE configuration SYSTEM "http://jackrabbit.apache.org/dtd/indexing-configuration-1.0.dtd"> <configuration xmlns:nt="http://www.jcp.org/jcr/nt/1.0"> <index-rule nodeType="nt:unstructured" boost="2.0"> <property>Text</property> </index-rule> </configuration>
上例中,指明nt:unstructured类型的节点的激进因子(boost)为2.0,默认值是1.0,当按jcr:score进行降序排序结果集时,boost值越高位置越考前(也可能有例外,关于score的计算方法请见这里).boost值的有效范围是1.0~5.0.
若想在特定属性上指定boost参数也是可以的.
示例:(为了节省空间,下文的示例中将省略一些不必要的内容)
<index-rule nodeType="nt:unstructured"> <property boost="3.0">Title</property> <property boost="1.5">Text</property> </index-rule>
问题3 上面的规则不错,但只能将规则指定给某个类型,有没有比类型更具体的指定方式呢?
借助condition值的定义实现更具体的方式,看下面示例:
<index-rule nodeType="nt:unstructured" boost="2.0" condition="@priority = 'high'"> <property>Text</property> </index-rule>
priority属性等于high的nt:unstructured节点,它的激进因子设置为2.0,且只有名为Text的属性会被建立索引.
注意,目前针对属性的条件,仅支持等号操作符和字符串类型.
条件也可以不在当前节点上,示例:
<index-rule nodeType="nt:unstructured" boost="2.0" condition="ancestor::*/@priority = 'high'"> <property>Text</property> </index-rule> <index-rule nodeType="nt:unstructured" boost="0.5" condition="parent::foo/@priority = 'low'"> <property>Text</property> </index-rule> <index-rule nodeType="nt:unstructured" boost="1.5" condition="bar/@priority = 'medium'"> <property>Text</property> </index-rule> 当有多规则应用于统一个类型时,最先满足条件的那个规则会被应用,其余的将被忽略.
在条件中也是可以指定节点类型的,但类型的匹配必须是精确的(exact),也就是不支持类型的子类.
示例:
<index-rule nodeType="nt:unstructured" boost="2.0" condition="element(*, nt:unstructured)/@priority = 'high'"> <property>Text</property> </index-rule>
问题4 有些属性的值(文本)不需要做全文索引,该怎么办?
默认情况下,凡STRING类型的属性以及其它可以抽取文本的属性都是进行全文索引的.
这就意味着,你可以通过类似jcr:contains(., 'foo')的条件查找到含有foo关键的文本所在的位置.
有时,类似省市地区这样的属性,就没有必要做全文索引,那么可以通过下面的方式禁用全文索引:
<index-rule nodeType="nt:unstructured"> <property nodeScopeIndex="false">Text</property> </index-rule>
问题5 可不可以用正则表达来匹配要索引的属性?
jackrabbit 1.5支持这样的特性,同时要确保使用DTD1.1的版本.
示例:
<?xml version="1.0"?> <!DOCTYPE configuration SYSTEM "http://jackrabbit.apache.org/dtd/indexing-configuration-1.1.dtd"> <configuration xmlns:nt="http://www.jcp.org/jcr/nt/1.0"> <index-rule nodeType="nt:unstructured"> <property isRegexp="true">.*Text</property> </index-rule> </configuration>
在属性上将useInExcerpt设置为false,可以禁用属性的文本摘要(excerpt)特性,这也是1.5的默认特性.
问题6 很多时候用nt:resource存储文件的内容,但全文查询的时候却只能查到它,而不是它的父节点,怎么办?
<?xml version="1.0"?> <!DOCTYPE configuration SYSTEM "http://jackrabbit.apache.org/dtd/indexing-configuration-1.0.dtd"> <configuration xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"> <aggregate primaryType="nt:file"> <include>jcr:content</include> </aggregate> </configuration>
通过配置aggregate元素来解决这个问题.上例中,就指明了nt:file的jcr:content子节点的索引会指向nt:file.
当然,还可以限定子节点的类型,并用"*"匹配所有子节点,示例:
<?xml version="1.0"?> <!DOCTYPE configuration SYSTEM "http://jackrabbit.apache.org/dtd/indexing-configuration-1.0.dtd"> <configuration xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"> <aggregate primaryType="nt:file"> <include primaryType="nt:resource">*</include> </aggregate> </configuration>
还可以通过深度(相对路径)来匹配多层子节点,示例:
<?xml version="1.0"?> <!DOCTYPE configuration SYSTEM "http://jackrabbit.apache.org/dtd/indexing-configuration-1.0.dtd"> <configuration xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"> <aggregate primaryType="nt:file"> <include>*</include> <include>*/*</include> <include>*/*/*</include> </aggregate> </configuration>
问题7 不同属性的文本值索引的分析算法不同,该怎么办?
<?xml version="1.0"?> <!DOCTYPE configuration SYSTEM "http://jackrabbit.apache.org/dtd/indexing-configuration-1.0.dtd"> <configuration xmlns:nt="http://www.jcp.org/jcr/nt/1.0"> <analyzers> <analyzer class="org.apache.lucene.analysis.KeywordAnalyzer"> <property>mytext</property> </analyzer> <analyzer class="org.apache.lucene.analysis.WhitespaceAnalyzer"> <property>mytext2</property> </analyzer> </analyzers> </configuration>
上文的内容均参考至http://wiki.apache.org/jackrabbit/IndexingConfiguration
发表评论
-
回收DirectByteBuffer
2011-03-03 10:33 2832为避免GC的负效应, 使用DirectByteBuffer管理 ... -
基于DSL风格的代码重构
2010-10-29 09:32 206什么样代码是简洁易懂, 这很难有个统一的标准, 因为它很 ... -
应用DirectBuffer提升系统性能
2010-08-19 13:01 3234Java 2 SE 6 doc : Given ... -
netty应用中接收缓存覆写的陷阱
2010-08-17 13:31 6344version : netty-3.2.1.final ... -
GWT应用经验小结
2009-03-16 18:29 38561. pendingSrc 问题描述:Image的set ... -
解读《使用Jencks实现Hibernate与Jackrabbit的分布式事务》
2009-01-15 18:15 5504前言 本文是针对《使用Jencks实现Hibernate与 ... -
使用Jencks实现Hibernate与Jackrabbit的分布式事务
2009-01-13 10:40 4315前言 这是一篇用Spring和Jencks ... -
从Erlang看高并发可容错系统设计原则
2008-12-25 18:30 2520《面对软件错误构建可靠的分布系统》 写道 Erlang 的世 ... -
Lucene索引文件解析之“项”
2008-12-23 17:25 1847接上文Lucene索引文件解析之“域”。 关于项(Ter ... -
Mockito入门
2008-12-17 18:35 11399简介 InfoQ-使用Mockito 1.5监视普通对象 ... -
开源让我兴奋
2007-01-08 11:47 811一直在设想自己设计一个java过程自动化的工具,但苦于经验、技 ... -
对象的创建和销毁
2008-08-31 05:23 976考虑用静态工厂方法代替构造器 静态工厂方法的名字使得调用者 ... -
关于Spring嵌套事务
2008-09-03 05:34 13608不久前,为了避免事务的嵌套,刻意去修改以前的设计,导致各部分之 ... -
教练Marc Lammers语录
2008-09-09 02:06 1057本文摘之InfoQ:世界顶尖 ... -
速度计算有偏差
2008-09-18 01:24 1082团队有4个开发人员,3个测试人员,试行了4天的小迭代,完成的工 ... -
任务板用起来了
2008-09-25 00:53 2270好久就知道任务是个项 ... -
用例编写推荐守则
2008-10-08 07:52 1093没有最佳的用例模板,格式和章节是为用例的内容服务的,它们 ... -
Lucene索引文件解析之“域”
2008-12-12 00:42 2933引言 目前最新的Lucene的版本是2.4.0,但关于索引 ... -
GWT中RequestBuilder使用贴士
2008-12-09 13:35 7625GET请求 String url = // 动态生成 ... -
Failed to resolve artifact
2008-11-30 03:58 6826使用GWT-Maven Archetype (maven-go ...
相关推荐
Rabbit BL1800 Jackrabbit 说明书pdf,Rabbit BL1800 Jackrabbit 说明书
jackrabbit最全入门教程,jackrabbit最全入门教程,jackrabbit最全入门教程,jackrabbit最全入门教程
jackrabbit 1.5.6 jar
jackrabbit-standalone-1.6.5.jar是webDav的支持jar包。
深入浅出讲解jackrabbit 共分十个专题。PDF 文档
jackrabbit开发用jar包,jackrabbit是基于Lucene的一种站内搜索技术,它用xml文件为他的元数据,自动穿件索引,使用xpath或者xquery的查询方法。
Apache Jackrabbit API html ,非常详细,
jackrabbit-api-1.5.0.jar
一个Eclipse项目, 内含三个Apache Jackrabbit的入门实例, 以及所有需要的包, 在Eclipse中可直接运行。
jackrabbit教程,主要是网上整合的资源。比较全面。用法等。
jackrabbit-webdav-2.1.0.jar 具体用法可以网上查找
常见问题查询。作为JCR的一个实例,为用户提供一种网络存储、共享、应用的方式
jackrabbit-core-1.5.5.jar
jackrabbit 研究初步,不想多说,肯定值。研究了好久哦。
jackrabbit, 在amqplib上,简单的amqp/rabbitmq作业队列基于 node Jackrabbitnode.js 在不讨厌生命的情况下。producer.js:var jackrabbit = require('jackrabbit');var rabbit = jackrabbit(process
里面包含两个工程,一个是官方的三个小demo,另一个是在ibm页面看到的实例,比小demo稍微高级一些,希望可以帮助大家迅速入门和理解jackrabbit。
jackrabbit-webdav-1.5.5.jar
NULL 博文链接:https://kinglord2010.iteye.com/blog/665530
从jackrabbit.apache.org把Jackrabbit源代码下载下来,它把各模块分为好几个类包,在本文,我所讲的是...jackrabbit-core包负责文件的存储,索引的建立。如果有cluster, core包还要负责Jackrabbit集群方面的工作。
Jackrabbit Oak-下一代内容存储库 Jackrabbit Oak是一个可伸缩的高性能分层内容存储库,旨在用作现代世界级网站和其他要求苛刻的内容应用程序的基础。 Oak的努力是Apache Jackrabbit项目的一部分。 Apache ...