Erweitern der Suchanfrage
Sie können die Suchanfrage des Benutzers mit einer weiteren Suchanfrage verknüpfen, die Sie in einer Java-Klasse definiert haben. Die Suchanfrage des Benutzers und die Suchanfrage in der Klasse werden mit UND verknüpft.

Beispielsweise können Sie in der Klasse eine Suche nach einem bestimmten Eigenschaftswert definieren (z. B. Eigenschaft Zielgruppe = „public“). Dann gibt der Index nur Dokumente zurück, bei denen dieser Wert gesetzt ist.
Ihre Java-Klasse muss von folgender Klasse abgeleitet sein:
com.sapportals.wcm.service.indexmanagement.retrieval.search.DefaultQueryExtender
Um Ihre Java-Klasse an einen Index anzubinden, legen Sie in der Index-Administration die Zusatzeigenschaft queryExtender an. Als Wert geben Sie den vollständigen Namen der Java-Klasse an (siehe Index anlegen).
Das folgende Beispiel zeigt eine Java-Klasse, mit der Sie die Suchanfragen an einen Index erweitern können:
public class TestQueryExtender extends DefaultQueryExtender{
private AbstractIndex index = null;
public TestQueryExtender(){
}
/**
* has to be implemented the following way
*
* public TestQueryExtender(AbstractIndex index){
* super(index);
* }
*
* @param index
*/
public TestQueryExtender(AbstractIndex index){
this.index = index;
}
/**
* Return the query which is added to the search for the index
*
* @param qList the stabdart query list, which will be extended.
* @param context
* @return
* @throws ResourceException
*/
public IQueryEntryList buildAdditionalQuery(IQueryEntryList qList, IResourceContext context)
throws WcmException
{
IQueryEntryList returnList = qList.createEmptyQueryEntryList();
returnList.addContentQuery("test");
returnList.addOrOperator();
returnList.addContentQuery("sap");
return returnList;
}
/**
* @return
*/
public AbstractIndex getIndex() {
return index;
}
}