|
FederatedSearchSource Demo
|
This demo shows a federated search against two different types of Search Sources, the CBSNews site used in
the HTMLSearchSource demo and the Google Web Service SOAP source shown in the SOAPSearchSource demo.
A more comprehensive federated search demo
is also available.
Description of the configuration modules used in the federated seach demo.
XML Configuration for this demo:
Search Form configuration:
<!-- ====================================================================== -->
<!-- SearchForm for FederatedSearchSource demo. -->
<!-- ====================================================================== -->
<SearchForm name="FederatedSearchForm" category="FederatedNews" >
<Field ID="KY" type="text" width="50" name="Keywords" />
</SearchForm>
Display Form configuration:
<!-- ======================================================================= -->
<!-- DisplayForm for HTMLSearchSource: uses XSLTResultRenderer -->
<!-- ======================================================================= -->
<DisplayForm name="HTMLSourceDisplay"
rendererClass="com.raritantechnologies.quickstart.taglibrary.TableDisplayFormRenderer"
bgcolor1="#ffffff" bgcolor2="#EDF3FE" >
<ResultRenderer rendererClass="com.raritantechnologies.quickstart.taglibrary.XSLResultRenderer"
align="left" valign="top" defaultString=" " width="550">
<Source name="CBSNews" xslFile="BASE_PATH/WEB-INF/conf/CBSNews/CBSNewsDisplayTransform.xsl" />
<!-- Google puts some html markup that must be cleaned up in the HTML layer -->
<Source name="GoogleSOAP" xslFile="BASE_PATH/WEB-INF/conf/Google/GoogleDisplayTransform.xsl" >
<OutputFilter class="com.raritantechnologies.utils.filter.SequentialStringFilter" >
<StringFilter class="com.raritantechnologies.utils.filter.ReplaceSubstringFilter"
inPattern="<" outPattern="<" replace="ALL" />
<StringFilter class="com.raritantechnologies.utils.filter.ReplaceSubstringFilter"
inPattern=">" outPattern=">" replace="ALL" />
</OutputFilter>
</Source>
</ResultRenderer>
</DisplayForm>
Source Map Configuration:
<Category ID="FederatedNews" name="FederatedNews" >
<Sources>
<Source name="CBSNews" />
<Source name="GoogleSOAP" />
</Sources>
</Category>
Search Source Configurations:
<!-- ======================================================================== -->
<!-- HTMLSearchSource: CBSNews.com -->
<!-- ======================================================================== -->
<SourceType name="CBSNews" type="HTMLSearchSource" displayName="CBSNews.com"
sourceFactoryClass="com.raritantechnologies.federated.html.HTMLSearchSourceFactory"
queryProcessor="com.raritantechnologies.federated.html.HTMLQueryProcessor">
<Fields>
<Field ID="key" xPath="/SearchProcess/Step/params/param[@formName='searchString']/@value"/>
</Fields>
<SecurityModel>
<search>Public</search>
</SecurityModel>
<SearchProcess>
<Step type="getURL" URL="http://www.cbsnews.com/htdocs/search/search.php">
<params>
<param formName="num" value="10" />
<param formName="offset" value="0" />
<param formName="source" value="cbsnews" />
<param formName="section" value="" />
<param formName="type" value="all" />
<param formName="sp-s" value="1" />
<param formName="searchString" value="" />
<param formName="x" value="22" />
<param formName="y" value="8" />
</params>
</Step>
</SearchProcess>
<ScraperConfigFile>CBSNewsScraperConfig.xml</ScraperConfigFile>
<OutputTransformer>CBSNewsTransform.xsl</OutputTransformer>
</SourceType>
<!-- ======================================================================= -->
<!-- SOAPSearchSource: GoogleWebService -->
<!-- ======================================================================= -->
<SourceType name="GoogleSOAP" type="SOAPSearchSource" displayName="Federated SOAP - Google"
sourceFactoryClass="com.raritantechnologies.federated.SOAP.SOAPSearchSourceFactory"
queryProcessor="com.raritantechnologies.federated.SOAP.SOAPQueryProcessor" >
<SOAPServiceDef
targetObjectURI="http://api.google.com/search/beta2"
xslTransform="BASE_PATH/WEB-INF/conf/Google/GoogleSOAPResponse.xsl" />
<SOAPMethod methodName="ns1:doGoogleSearch"
namespace=""
SOAPAction="urn:GoogleSearchAction"
responseXMLType="GoogleSearchResult"
namespaceHost="urn:GoogleSearch" >
<parameter name="key" type="xsd:string" value="ezC+bv9QFHIjUVV1qy69oMCJwjnDcuCW" />
<parameter name="q" type="xsd:string" field="KY" />
<parameter name="start" type="xsd:int" value="0" computeFrom="(START_REC-1)" />
<parameter name="maxResults" type="xsd:int" value="10" />
<parameter name="filter" type="xsd:boolean" value="true" />
<parameter name="restrict" type="xsd:string" value="" />
<parameter name="safeSearch" type="xsd:boolean" value="false" />
<parameter name="lr" type="xsd:string" value="" />
<parameter name="ie" type="xsd:string" value="latin1" />
<parameter name="oe" type="xsd:string" value="latin1" />
<ResponseProcess>
<ResponseParameter path="/descendant::estimatedTotalResultsCount"
outputTo="TOTAL_DOCS" />
</ResponseProcess>
</SOAPMethod>
</SourceType>