2013-04-05 60 views
0

我需要过滤一些页面,以便它们不会出现在搜索中。 对于有一个名为com.day.cq.search.impl.SimpleSearchImpl是否暴露了addPredicate()方法?

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

法这种方法是不存在于com.day.cq.wcm.foundation.Search。我不确定这种方法存在于哪个API中。

在CQ5文档中,据说该方法在SimpleSearchImpl中实现,该文件存在于包com.day.cq.search.impl.SimpleSearchImpl中。但是,当我尝试导入该软件包时,会引发错误,指出该软件包无效。

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

回答

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到SimpleSearch实现的引用或使用SCR reference

Alex Klimetschek作为SimpleSearch方法的替代方案,对[使用QueryBuilder API] http://www.slideshare.net/alexkli/cq5-querybuilder-adapttoberlin-2011作了很好的介绍,这对于帮助理解谓词很有用。

+0

嗨迪法,我会尽力让你知道,谢谢 – balaji 2013-04-08 05:49:05

+0

嗨迪法,这是正确的,谢谢 – balaji 2013-04-09 10:56:09

+0

你应该接受答案,如果它解决了你的问题。 – diffa 2013-04-09 15:33:05