The Federation FAST Query Builder stage takes a job (most likely originating from the Dispatcher) and builds a query to be sent to the FAST search engine by gathering all document elements at the top level and constructing a single element that my be submitted to the search engine via Fetch URL.

The stage requires an aspireFederationServer variable (of Server class) to be attached to the input job. The URL of the search server is obtained from this variable.

The stage also adjusts the offset and hits parameters of the request so that they return a results set suitable for merging by the Merger. For a request for a page of 10 documents at offset 20, the stage will request documents 1 to 30:

 Federation Offset = 0
 Federation Hits = Request Offset + Request Hits

The constructed query is output to the aspireFederationQuery tag.

Federation FAST Query Builder
Factory Namecom.searchtechnologies.aspire:aspire-federation
subType

fastQuery

InputsAspire Jobs
OutputsUpdates the input job

Configuration

This component has no configurable parameters.

Example Configuration

 <component name="ConstructFastUrl" subType="fastQuery" factoryName="aspire-federation" />

Example Document

Input

 <doc>
   <aspireHttpFeederServlet remotePort="57329" relativePath="/xsearch" serverName="10.40.40.117" source="HTTPFeederServlet" remoteHost="10.40.40.117" serverPort="50525" remoteAddr="10.40.40.117" fullPath="/cgi-bin/xsearch" servletPath="/cgi-bin">
     <queryString>&query=new&remoteAddress=value1&userid=administrator&qtf_security:uid=win:administrator</queryString>
   </aspireHttpFeederServlet>
   <remoteAddress source="HTTPFeederServlet">value1</remoteAddress>
   <query source="HTTPFeederServlet">new</query>
   <feederLabel>QueryProxy</feederLabel>
   <userid source="HTTPFeederServlet">administrator</userid>
   <pathInfo source="HTTPFeederServlet">/xsearch</pathInfo>
   <qtf_security:uid source="HTTPFeederServlet">win:administrator</qtf_security:uid>
   <offset>20</offset>
   <hits>20</hits>
 </doc>

Output

 <doc>
   <hits>20</hits>
   <aspireHttpFeederServlet remotePort="57329" relativePath="/xsearch" source="HTTPFeederServlet" serverName="10.40.40.117" remoteHost="10.40.40.117" serverPort="50525" remoteAddr="10.40.40.117" servletPath="/cgi-bin" fullPath="/cgi-bin/xsearch">
     <queryString>&query=new&remoteAddress=value1&userid=administrator&qtf_security:uid=win:administrator</queryString>
   </aspireHttpFeederServlet>
   <remoteAddress source="HTTPFeederServlet">value1</remoteAddress>
   <query source="HTTPFeederServlet">new</query>
   <feederLabel>QueryProxy</feederLabel>
   <userid source="HTTPFeederServlet">administrator</userid>
   <offset>20</offset>
 
   <aspireFederationQuery>http://server1/xsearch?remoteAddress=value1&query=new&feederLabel=QueryProxy&userid=administrator&pathInfo=/xsearch&qtf_security:uid=win:administrator&offset=0&hits=40</aspireFederationQuery>
 
   <pathInfo source="HTTPFeederServlet">/xsearch</pathInfo>
   <qtf_security:uid source="HTTPFeederServlet">win:administrator</qtf_security:uid>
 </doc>
  • No labels