0

我需要过滤一些页面,以便它们不会出现在搜索中。为此,有一种方法称为

addPredicate(new Predicate("mytype", "type").set("group.4_group.1_property", "jcr:content/cq:template"));

此方法不存在于com.day.cq.wcm.foundation.Search. 我不确定该addPredicate方法存在于哪个 API 中。

在 CQ5 文档中,据说此方法是在 中实现的SimpleSearchImpl,它存在于 package 中com.day.cq.search.impl.SimpleSearchImpl。但是,当我尝试导入该包时,它会抛出一个错误,指出该包无效。

如果SimpleSearchImpl不是addPredicate方法所需的类,您能告诉我该方法所需的类是addPredicate什么吗?

4

1 回答 1

2

com.day.cq.search.SimpleSearch接口是从包中导出的,cq-search但不是com.day.cq.search.impl.SimpleSearchImpl实现类。

您可以在此处查看导出包的列表:

http://localhost:4502/system/console/bundles/com.day.cq.cq-search

您可以通过调整 Resource或使用SCR 引用来获得对 SimpleSearch 实现的引用

Alex Klimetschek 做了一个关于 [使用 QueryBuilder API] http://www.slideshare.net/alexkli/cq5-querybuilder-adapttoberlin-2011的精彩演讲,作为 SimpleSearch 方法的替代方法,这可能有助于理解谓词.

于 2013-04-06T08:27:05.817 回答