Faceted Search Query Xml - MasterQuery Element Example
The Faceted Search Query Builder macro (se:facetedsearchquerybuilder) contains a lot of local instance vipers. Usually, local instance vipers are used within the macro itself, e.g. formatting, but in this case the local instance vipers should only be used within a query xml definition.
This example shows a masterquery element from a query xml definition in which some of the available local instance vipers are used.
Smartsite SXML |
![]() |
---|---|
<masterquery connection="" defaultsources="content"> <query><![CDATA[ SELECT {this.selectfields()} FROM {this.tableorview()} c JOIN ( SELECT {this.rankingfields()} FROM ( {this.searchquery(default="SELECT Nr, 0 As SearchRank, 1 AS BaseSearch FROM "+this.searchgroupviewname())} ) rq GROUP BY rq.Nr ) vt2 ON c.Nr=vt2.Nr JOIN {this.searchgroupviewname()} sgv WITH (NOEXPAND) ON c.Nr = sgv.Nr {this.joinclause(default="")} {this.resultchanneljoins("c",default="")} WHERE {this.whereclause(default="(1=1)")} AND vt2.BaseSearch = 1 AND {security.getbrowsablewhere('c',100)} ]]> </query> <fields rem="value for this.selectfields(), used to display the query results"><![CDATA[ ROW_NUMBER() OVER (ORDER BY {this.orderby(default="searchrank DESC")}, c.Nr) AS rownum, c.Nr AS Nr, CAST(vt2.searchrank AS INT) AS searchrank, c.contenttype, c.author, c.ModDate AS ModDate, c.Title AS Title, SUBSTRING(sgv.QueryData,0,16000) AS Abstract, ft.FileExtension, {this.resultchannelcode(default="NULL")} AS ChannelCode ]]> </fields> <joins rem="clause used in search results query"><![CDATA[ JOIN FileTypes ft ON c.FileType=ft.Nr ]]> </joins> <rankingfields rem="value for this.rankingfields()"> nr, SUM(searchrank) AS searchrank, COUNT(BaseSearch) AS BaseSearch </rankingfields> <paging rem="paging query for search result"><![CDATA[ SELECT * FROM ( {this.searchquery(default="SELECT Nr, 0 As SearchRank, 1 AS BaseSearch FROM "+this.searchgroupviewname())} ) x WHERE rownum BETWEEN ?:lowerbound AND ?:upperbound ]]> </paging> </masterquery> |