如何使用Lucene在Jackrabbit中查询

时间:2016-08-24 14:59:24

标签: lucene jackrabbit

我在项目中使用Jackrabbit存储文件和信息。

我有一个自定义节点类型:

<an = 'ApplyNode'>
<ani = 'ApplyNodeInfo'>
<anp = 'ApplyNodeProperty'>
[an:PolicyNode] > nt:hierarchyNode
- anp:PolicyId (string)
- anp:DepartmentId (string)
- anp:PolicyName (string)
- anp:DepartmentName (string)
- anp:AreaName (string)
- anp:IssuanceTime (date)
- anp:ValidTime (date)
- anp:Digest (String)
- anp:PolicyContent (string)

我知道Jackrabbit可以使用JCR-SQL查询节点中的信息。但是JCR-SQL无法满足我的需求,例如模糊搜索和字频。所以我想知道如何使用Lucene来查询节点中的信息。

如何使用Lucene API在Jackrabbit中查询?

THX。

2 个答案:

答案 0 :(得分:0)

AFAIK jackrabbit确实使用Lucene来构建运行时快速数据查找所需的索引 - 但它在内部完成,并且它不会将它使用的任何Lucene位暴露给&#34;外部&# 34;,通过其API层。 因此,您无法使用Lucene的API查询Jackrabbit JCR实现,您必须坚持使用JCR的文档查询支持,抱歉:(

答案 1 :(得分:0)

简而言之,您可以编写类来处理索引。覆盖org.apache.jackrabbit.core.query.lucene.SearchIndex并将您的类添加到您的存储库配置...

<SearchIndex class="<your class>">

下行是您必须自己处理所有索引,并且您无法使用JCR SearchManager。