【问题标题】:How to use Lucene to query in JackrabbitJackrabbit中如何使用Lucene进行查询
【发布时间】:2016-08-24 14:59:23
【问题描述】:

我在我的项目中使用 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在节点中查询我的信息。

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

谢谢。

【问题讨论】:

    标签: lucene jackrabbit


    【解决方案1】:

    AFAIK jackrabbit 确实使用 Lucene 来构建它在运行时快速查找数据所需的索引 - 但它在内部这样做,并且它不会通过其 API 层将它使用的任何 Lucene 位暴露给“外部” . 因此,您无法使用 Lucene 的 API 来查询 Jackrabbit JCR 实现,您必须坚持对 JCR 的记录查询支持,抱歉 :(

    【讨论】:

    • 嗨菲利普,谢谢你的回答。我想知道是否可以使用 JCR-SQL 进行一些高级查询?例如。模糊搜索和词频。
    • 模糊搜索和词频是与 Lucene 非常具体的领域逻辑相关的特殊 API,恐怕你不会在 JCR-SQL 中找到任何这些,对不起,再次:(
    【解决方案2】:

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

    <SearchIndex class="<your class>">
    

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

    【讨论】:

    • 抱歉回复晚了!!!我已经通过使用 Solr 解决了我的问题。并感谢您的回复!!!!!!
    猜你喜欢
    • 2011-07-07
    • 2013-08-07
    • 1970-01-01
    • 2021-02-19
    • 2011-07-17
    • 2019-07-05
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多