com.day.cq.search.impl.SimpleSearchImpl是否公开了addPredicate()方法?

时间:2013-04-05 07:19:46

标签: java java-ee search content-management-system cq5

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

的方法
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中实现的,它存在于包com.day.cq.search.impl.SimpleSearchImpl中。但是,当我尝试导入该包时,会抛出一个错误,指出包无效。

如果SimpleSearchImpl不是addPredicate方法所需的类,请告诉我方法addPredicate所需的类是什么?

1 个答案:

答案 0 :(得分: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

您可以adapting a Resource或使用SCR reference获取对SimpleSearch实施的引用。

Alex Klimetschek就[使用QueryBuilder API] http://www.slideshare.net/alexkli/cq5-querybuilder-adapttoberlin-2011)作为SimpleSearch方法的替代方案进行了精彩的演示,这可能有助于理解谓词。