2013-04-05 61 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