我需要过滤一些页面,以便它们不会出现在搜索中。 为此,有一个名为
的方法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
所需的类是什么?
答案 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方法的替代方案进行了精彩的演示,这可能有助于理解谓词。