【问题标题】:Exclude child path from fulltext search parent path using Querybuilder OR get search hit excerpt from XPATH/JCR SQL2 query使用 Querybuilder 从全文搜索父路径中排除子路径或从 XPATH/JCR SQL2 查询中获取搜索命中摘录
【发布时间】:2021-02-23 00:25:39
【问题描述】:

我想使用 querybuilder 从搜索路径中排除子节点路径

例如 - 父文件夹是 /content/mysite/en

子文件夹是

/content/mysite/en/testfolder1

/content/mysite/en/testfolder2

我希望查询生成器编写一个查询以排除这些路径

我已经看过这个问题了-

AEM Query builder exclude a folder in search

但分组路径和 p.not=true 似乎没有按预期工作

我知道使用查询生成器编写这样的查询有点棘手;所以我正在使用 JCR/SQL2 查询 -

使用

SELECT * FROM [cq:Page] 
WHERE ISDESCENDANTNODE(page,'/content/mysite/en') 
AND CONTAINS(*, 'fulltext') 
AND NOT ISDESCENDANTNODE(page, '/content/mysite/en/testfolder1') 
AND NOT ISDESCENDANTNODE(page, '/content/mysite/en/testfolder2')

但现在的问题是,我们还想要由 querybuilder api 的 SearchResult 的命中对象自动创建的搜索摘录 -

hit.getExcerpt()

那么有没有办法使用 JCR/SQL2 查询来获取摘录?

或者有没有一种方法可以使用 querybuilder 构建排除子文件夹查询;这样我就可以从结果中摘录?两种解决方案都可以解决我的问题。

如果有人有使用 querybuilder 排除子文件夹查询的经验;或使用 JCR/SQL2 查询构建搜索摘录;或本案的任何其他想法/建议;非常感谢您的帮助

【问题讨论】:

    标签: lucene aem query-builder jackrabbit-oak jcr-sql2


    【解决方案1】:

    试试 path.exact=true 下面是一个例子

    没有 path.exact=true

    type=cq:Page
    path=/content/wkndmuzik/us/en
    

    输出:

    使用 path.exact=true

    type=cq:Page
    path=/content/wkndmuzik/us/en
    path.exact=true
    

    输出:

    path.exact=true : 如果匹配 true 确切路径,如果 false 则包括所有后代。

    有关 querybuider api 的其他谓词,请访问blog of Hashim Khan

    【讨论】:

      猜你喜欢
      • 2020-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-24
      • 1970-01-01
      • 1970-01-01
      • 2012-11-26
      • 1970-01-01
      相关资源
      最近更新 更多