我想使用querybuilder从搜索路径中排除子节点路径
例如-父文件夹为/content/mysite/en
和子文件夹
/内容/mysite/中文/测试文件夹1
/内容/mysite/中文/测试文件夹2
我希望查询生成器编写查询以排除这些路径
我已经看过这个问题了-
AEM Query builder exclude a folder in search
但是对路径和p.not=true进行分组似乎没有按预期的方式工作
我知道使用查询构建器编写这样的查询有点棘手;所以我使用JCR/SQL 2查询-
使用
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对象自动创建的搜索摘录-
hit.getExcerpt()
那么是否有一种方法可以使用JCR/SQL 2查询来获取摘录呢?
或者有没有一种方法可以使用querybuilder构建排除子文件夹查询;这样我就可以从结果中得到摘录?这两种解决方案都能解决我的问题。
如果有人有使用querybuilder排除子文件夹查询的经验;或使用JCR/SQL 2查询建立搜索摘录;或任何其他意见/建议;如能提供帮助,将不胜感激
1条答案
按热度按时间flseospp1#
下面是一个例子
没有路径。exact=true
输出:
使用路径.exact=true
输出:
路径.精确=真:如果为true,则匹配精确路径,如果为false,则包括所有后代。
有关querybuider api上的其他 predicate ,请访问blog of Hashim Khan