blob: 17748764e4a67240ec6d8ca248f3ad744c63123c [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="SMILA/Documentation/HighlightingService" />
<link rel="shortcut icon" href="http://wiki.eclipse.org/SMILA/Documentation/favicon.ico" />
<link rel="search" type="application/opensearchdescription+xml" href="http://wiki.eclipse.org/opensearch_desc.php" title="Eclipsepedia (English)" />
<link rel="alternate" type="application/rss+xml" title="Eclipsepedia RSS Feed" href="http://wiki.eclipse.org/index.php?title=Special:Recentchanges&amp;feed=rss" />
<link rel="alternate" type="application/atom+xml" title="Eclipsepedia Atom Feed" href="http://wiki.eclipse.org/index.php?title=Special:Recentchanges&amp;feed=atom" />
<title>SMILA/Documentation/HighlightingService - Eclipsepedia</title>
<style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "/skins/eclipsenova/novaWide.css?116"; /*]]>*/</style>
<link rel="stylesheet" type="text/css" media="print" href="http://wiki.eclipse.org/skins/eclipsenova/eclipsenovaPrint.css?116" />
<link rel="stylesheet" type="text/css" media="handheld" href="http://wiki.eclipse.org/skins/eclipsenova/handheld.css?116" />
<link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/header.css" media="screen" />
<link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/tabs.css" media="screen" />
<link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/visual.css" media="screen" />
<link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/layout.css" media="screen" />
<link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/footer.css" media="screen" />
<!--[if IE]><link rel="stylesheet" type="text/css" href="/skins/eclipsenova/IEpngfix.css" media="screen" /><![endif]-->
<!--[if lt IE 5.5000]><style type="text/css">@import "/skins/eclipsenova/IE50Fixes.css?116";</style> <![endif]-->
<!--[if IE 5.5000]><style type="text/css">@import "/skins/eclipsenova/IE55Fixes.css?116";</style><![endif]-->
<!--[if IE 6]><style type="text/css">@import "/skins/eclipsenova/IE60Fixes.css?116";</style><![endif]-->
<!--[if IE 7]><style type="text/css">@import "/skins/eclipsenova/IE70Fixes.css?116";</style><![endif]-->
<!--[if lt IE 7]><script type="text/javascript" src="/skins/common/IEFixes.js?116"></script>
<meta http-equiv="imagetoolbar" content="no" /><![endif]-->
<script type= "text/javascript">/*<![CDATA[*/
var skin = "eclipsenova";
var stylepath = "/skins";
var wgArticlePath = "/$1";
var wgScriptPath = "";
var wgScript = "/index.php";
var wgServer = "http://wiki.eclipse.org";
var wgCanonicalNamespace = "";
var wgCanonicalSpecialPageName = false;
var wgNamespaceNumber = 0;
var wgPageName = "SMILA/Documentation/HighlightingService";
var wgTitle = "SMILA/Documentation/HighlightingService";
var wgAction = "view";
var wgRestrictionEdit = [];
var wgRestrictionMove = [];
var wgArticleId = "18692";
var wgIsArticle = true;
var wgUserName = null;
var wgUserGroups = null;
var wgUserLanguage = "en";
var wgContentLanguage = "en";
var wgBreakFrames = false;
var wgCurRevisionId = "146264";
var wgVersion = "1.12.0";
var wgEnableAPI = true;
var wgEnableWriteAPI = false;
/*]]>*/</script>
<script type="text/javascript" src="http://wiki.eclipse.org/skins/common/wikibits.js?116"><!-- wikibits js --></script>
<!-- Performance mods similar to those for bug 166401 -->
<script type="text/javascript" src="http://wiki.eclipse.org/index.php?title=-&amp;action=raw&amp;gen=js&amp;useskin=eclipsenova"><!-- site js --></script>
<!-- Head Scripts -->
<script type="text/javascript" src="http://wiki.eclipse.org/skins/common/ajax.js?116"></script>
<style type="text/css">/*<![CDATA[*/
.source-xml {line-height: normal; font-size: medium;}
.source-xml li {line-height: normal;}
/**
* GeSHi Dynamically Generated Stylesheet
* --------------------------------------
* Dynamically generated stylesheet for xml
* CSS class: source-xml, CSS id:
* GeSHi (C) 2004 - 2007 Nigel McNie (http://qbnz.com/highlighter)
*/
.source-xml .de1, .source-xml .de2 {font-family: 'Courier New', Courier, monospace; font-weight: normal;}
.source-xml {}
.source-xml .head {}
.source-xml .foot {}
.source-xml .imp {font-weight: bold; color: red;}
.source-xml .ln-xtra {color: #cc0; background-color: #ffc;}
.source-xml li {font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;}
.source-xml li.li2 {font-weight: bold;}
.source-xml .coMULTI {color: #808080; font-style: italic;}
.source-xml .es0 {color: #000099; font-weight: bold;}
.source-xml .br0 {color: #66cc66;}
.source-xml .st0 {color: #ff0000;}
.source-xml .nu0 {color: #cc66cc;}
.source-xml .sc0 {color: #00bbdd;}
.source-xml .sc1 {color: #ddbb00;}
.source-xml .sc2 {color: #339933;}
.source-xml .sc3 {color: #009900;}
.source-xml .re0 {color: #000066;}
.source-xml .re1 {font-weight: bold; color: black;}
.source-xml .re2 {font-weight: bold; color: black;}
/*]]>*/
</style>
<style type="text/css">/*<![CDATA[*/
@import "/index.php?title=MediaWiki:Geshi.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000";
/*]]>*/
</style><link rel="stylesheet" type="text/css" href="HighlightingService.html" /> </head>
<body class="mediawiki ns-0 ltr page-SMILA_Documentation_HighlightingService">
<div id="globalWrapper">
<div id="column-one">
<!-- Eclipse Additions for the Top Nav start here M. Ward-->
<div id="header">
<div id="header-graphic">
<img src="http://wiki.eclipse.org/skins/eclipsenova/eclipse.png" alt="Eclipse Wiki">
</div>
<!-- Pulled 101409 Mward -->
<div class="portlet" id="p-personal">
<div class="pBody">
<ul>
<li id="pt-login"><a href="http://wiki.eclipse.org/index.php?title=Special:Userlogin&amp;returnto=SMILA/Documentation/HighlightingService">Log in</a></li>
</ul>
</div>
</div>
<div id="header-icons">
<div id="sites">
<ul id="sitesUL">
<li><a href="http://www.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/eclipseIcon.png" width="28" height="28" alt="Eclipse Foundation" title="Eclipse Foundation" /><div>Eclipse Foundation</div></a></li>
<li><a href="http://marketplace.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/marketplace.png" width="28" height="28" alt="Eclipse Marketplace" title="Eclipse Marketplace" /><div>Eclipse Marketplace</div></a></li>
<li><a href="https://bugs.eclipse.org/bugs"><img src="http://dev.eclipse.org/custom_icons/system-search-bw.png" width="28" height="28" alt="Bugzilla" title="Bugzilla" /><div>Bugzilla</div></a></li>
<li><a href="http://live.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/audio-input-microphone-bw.png" width="28" height="28" alt="Live" title="Live" /><div>Eclipse Live</div></a></li>
<li><a href="http://planeteclipse.org"><img src="http://dev.eclipse.org/large_icons/devices/audio-card.png" width="28" height="28" alt="PlanetEclipse" title="Planet" /><div>Planet Eclipse</div></a></li>
<li><a href="http://portal.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/preferences-system-network-proxy-bw.png" width="28" height="28" alt="Portal" title="Portal" /><div>My Foundation Portal</div></a></li>
</ul>
</div>
</div>
</div>
<!-- NEW HEADER STUFF HERE -->
<div id="header-menu">
<div id="header-nav">
<ul> <li><a class="first_one" href="http://wiki.eclipse.org/" target="_self">Home</a></li> <li><a href="http://www.eclipse.org/downloads/" target="_self">Downloads</a></li>
<li><a href="http://www.eclipse.org/users/" target="_self">Users</a></li>
<li><a href="http://www.eclipse.org/membership/" target="_self">Members</a></li>
<li><a href="http://wiki.eclipse.org/index.php/Development_Resources" target="_self">Committers</a></li>
<li><a href="http://www.eclipse.org/resources/" target="_self">Resources</a></li>
<li><a href="http://www.eclipse.org/projects/" target="_self">Projects</a></li>
<li><a href="http://www.eclipse.org/org/" target="_self">About Us</a></li>
</ul>
</div>
<div id="header-utils">
<!-- moved the search window here -->
<form action="http://wiki.eclipse.org/Special:Search" >
<input class="input" name="search" type="text" accesskey="f" value="" />
<input type='submit' onclick="this.submit();" name="go" id="searchGoButton" class="button" title="Go to a page with this exact name if one exists" value="Go" />&nbsp;
<input type='submit' onclick="this.submit();" name="fulltext" class="button" id="mw-searchButton" title="Search Eclipsepedia for this text" value="Search" />
</form>
</div>
</div>
<!-- Eclipse Additions for the Header stop here -->
<!-- Additions and mods for leftside nav Start here -->
<!--Started nav rip here-->
<!-- these are the nav controls main page, changes etc -->
<div id="novaContent" class="faux">
<div id="leftcol">
<ul id="leftnav">
<!-- these are the page controls, edit history etc -->
<li class="separator"><a class="separator">Navigation &#160;&#160;</li>
<li id="n-mainpage"><a href="http://wiki.eclipse.org/Main_Page">Main Page</a></li>
<li id="n-portal"><a href="http://wiki.eclipse.org/Eclipsepedia:Community_Portal">Community portal</a></li>
<li id="n-currentevents"><a href="http://wiki.eclipse.org/Eclipsepedia:Current_events">Current events</a></li>
<li id="n-recentchanges"><a href="http://wiki.eclipse.org/Special:Recentchanges">Recent changes</a></li>
<li id="n-randompage"><a href="http://wiki.eclipse.org/Special:Random">Random page</a></li>
<li id="n-help"><a href="http://wiki.eclipse.org/Help:Contents">Help</a></li>
<li class="separator"><a class="separator">Toolbox &#160;&#160;</a></li>
<li id="t-whatlinkshere"><a href="http://wiki.eclipse.org/Special:Whatlinkshere/SMILA/Documentation/HighlightingService">What links here</a></li>
<li id="t-recentchangeslinked"><a href="http://wiki.eclipse.org/Special:Recentchangeslinked/SMILA/Documentation/HighlightingService">Related changes</a></li>
<!-- This is the toolbox section -->
<li id="t-upload"><a href="http://wiki.eclipse.org/Special:Upload">Upload file</a></li>
<li id="t-specialpages"><a href="http://wiki.eclipse.org/Special:Specialpages">Special pages</a></li>
<li id="t-print"><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/HighlightingService&amp;printable=yes">Printable version</a></li> <li id="t-permalink"><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/HighlightingService&amp;oldid=146264">Permanent link</a></li> </ul>
</div>
<!-- Additions and mods for leftside nav End here -->
<div id="column-content">
<div id="content">
<a name="top" id="top"></a>
<div id="tabs">
<ul class="primary">
<li class="active"><a href="HighlightingService.html"><span class="tab">Page</span></a></li>
<li><a href="http://wiki.eclipse.org/index.php?title=Talk:SMILA/Documentation/HighlightingService&amp;action=edit"><span class="tab">Discussion</span></a></li>
<li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/HighlightingService&amp;action=edit"><span class="tab">View source</span></a></li>
<li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/HighlightingService&amp;action=history"><span class="tab">History</span></a></li>
<li><a href="http://wiki.eclipse.org/index.php?title=Special:Userlogin&amp;returnto=SMILA/Documentation/HighlightingService"><span class="tab">Edit</span></a></li>
</ul>
</div>
<script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script>
<h1 class="firstHeading">SMILA/Documentation/HighlightingService</h1>
<div id="bodyContent">
<h3 id="siteSub">From Eclipsepedia</h3>
<div id="contentSub"><span class="subpages">&lt; <a href="../../SMILA.html" title="SMILA">SMILA</a> | <a href="../Documentation.html" title="SMILA/Documentation">Documentation</a></span></div>
<div id="jump-to-nav">Jump to: <a href="HighlightingService.html#column-one">navigation</a>, <a href="HighlightingService.html#searchInput">search</a></div> <!-- start content -->
<table id="toc" class="toc" summary="Contents"><tr><td><div id="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1"><a href="HighlightingService.html#Bundle:_org.eclipse.smila.search.highlighting.HighlightingService"><span class="tocnumber">1</span> <span class="toctext">Bundle: org.eclipse.smila.search.highlighting.HighlightingService</span></a>
<ul>
<li class="toclevel-2"><a href="HighlightingService.html#Description"><span class="tocnumber">1.1</span> <span class="toctext">Description</span></a></li>
<li class="toclevel-2"><a href="HighlightingService.html#Configuration"><span class="tocnumber">1.2</span> <span class="toctext">Configuration</span></a>
<ul>
<li class="toclevel-3"><a href="HighlightingService.html#Annotations"><span class="tocnumber">1.2.1</span> <span class="toctext">Annotations</span></a></li>
<li class="toclevel-3"><a href="HighlightingService.html#Configuration_files"><span class="tocnumber">1.2.2</span> <span class="toctext">Configuration files</span></a></li>
<li class="toclevel-3"><a href="HighlightingService.html#Example"><span class="tocnumber">1.2.3</span> <span class="toctext">Example</span></a></li>
</ul>
</li>
</ul>
</li>
<li class="toclevel-1"><a href="HighlightingService.html#HighlightingTransformer"><span class="tocnumber">2</span> <span class="toctext">HighlightingTransformer</span></a>
<ul>
<li class="toclevel-2"><a href="HighlightingService.html#MaxTextLength"><span class="tocnumber">2.1</span> <span class="toctext">MaxTextLength</span></a>
<ul>
<li class="toclevel-3"><a href="HighlightingService.html#Parameters"><span class="tocnumber">2.1.1</span> <span class="toctext">Parameters</span></a></li>
</ul>
</li>
<li class="toclevel-2"><a href="HighlightingService.html#Sentence"><span class="tocnumber">2.2</span> <span class="toctext">Sentence</span></a>
<ul>
<li class="toclevel-3"><a href="HighlightingService.html#Parameters_2"><span class="tocnumber">2.2.1</span> <span class="toctext">Parameters</span></a></li>
</ul>
</li>
<li class="toclevel-2"><a href="HighlightingService.html#ComplexHLResultAggregation"><span class="tocnumber">2.3</span> <span class="toctext">ComplexHLResultAggregation</span></a>
<ul>
<li class="toclevel-3"><a href="HighlightingService.html#Parameters_3"><span class="tocnumber">2.3.1</span> <span class="toctext">Parameters</span></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</td></tr></table><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script>
<a name="Bundle:_org.eclipse.smila.search.highlighting.HighlightingService"></a><h2> <span class="mw-headline"> Bundle: <tt>org.eclipse.smila.search.highlighting.HighlightingService</tt> </span></h2>
<a name="Description"></a><h3> <span class="mw-headline"> Description </span></h3>
<p>This SearchProcessingService is used to highlight the results of a former executed search (e.g. with Lucene). A search may return highlight annotations on attributes. These annotations contain the original text as well as positions and scores of hits. The HighlightingService uses HighlightingTransformers to transform these annotations into a markup text, for example in a most basic case all hit terms could be marked bold. The original text is overwritten with this markup and the position annotations are removed.
</p><p>Multiple HighlightingTransformer implementations (OSGi Declarative Services) can register themselves at the HighlightingService. Via annotations on the query a HighlightingTransforme is selected and configured.
</p>
<a name="Configuration"></a><h3> <span class="mw-headline"> Configuration </span></h3>
<a name="Annotations"></a><h4> <span class="mw-headline"> Annotations </span></h4>
<p>The HighlightingService expects the following Annotation structure on any record Attribute that should be highlighted in a search (of course only Attributes with Sting values can be highlighted):
</p>
<div dir="ltr" style="text-align: left;"><pre class="source-xml"><span class="sc3"><span class="re1">&lt;An</span> <span class="re0">n</span>=<span class="st0">&quot;highlight&quot;</span><span class="re2">&gt;</span></span>
<span class="sc3"><span class="re1">&lt;An</span> <span class="re0">n</span>=<span class="st0">&quot;HighlightingTransformer&quot;</span><span class="re2">&gt;</span></span>
<span class="sc3"><span class="re1">&lt;V</span> <span class="re0">n</span>=<span class="st0">&quot;name&quot;</span><span class="re2">&gt;</span></span>%HIGHLIGHTING_TRANSFORMER_NAME%<span class="sc3"><span class="re1">&lt;/V<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;An</span> <span class="re0">n</span>=<span class="st0">&quot;%PARAMETER_NAME%&quot;</span><span class="re2">&gt;</span></span>
<span class="sc3"><span class="re1">&lt;V</span> <span class="re0">n</span>=<span class="st0">&quot;value&quot;</span><span class="re2">&gt;</span></span>%PARAMETER_VALUE%<span class="sc3"><span class="re1">&lt;/V<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/An<span class="re2">&gt;</span></span></span>
...
<span class="sc3"><span class="re1">&lt;/An<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/An<span class="re2">&gt;</span></span></span></pre></div>
<ul><li> "highlight" is the base annotation. On query records it is used to pass parameters for highlighting. On result records it is used to store the highlighting positions and text.
</li><li> "HighlightingTransformer" is a sub-annotation of "highlight".
<ul><li> It must contain a named value "name" that contains the name of the HighlightingTransformer implementation to use. This name has to be euqual to the value specified for property <tt>smila.highlighting.transformer.type</tt> in the HighlightingTransformer OSGi component description file.
</li><li> It may contain additional annotations as parameters for the HighlightingTransformer. The annotations name is the name of the configuration parameter, the named value "value" contains the value of the configuration property. See the description for each HighlightingTransformer to see what parameters are supported.
</li></ul>
</li></ul>
<p>On the result records the following Annotation structure is expected on Attributes that should be highlighted (these annotations are for example created by the LuceneSearchService):
</p>
<div dir="ltr" style="text-align: left;"><pre class="source-xml"><span class="sc3"><span class="re1">&lt;An</span> <span class="re0">n</span>=<span class="st0">&quot;highlight&quot;</span><span class="re2">&gt;</span></span>
<span class="sc3"><span class="re1">&lt;V</span> <span class="re0">n</span>=<span class="st0">&quot;text&quot;</span><span class="re2">&gt;</span></span>The original text without any markup where hits should be highlighted.<span class="sc3"><span class="re1">&lt;/V<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;An</span> <span class="re0">n</span>=<span class="st0">&quot;positions&quot;</span><span class="re2">&gt;</span></span>
<span class="sc3"><span class="re1">&lt;V</span> <span class="re0">n</span>=<span class="st0">&quot;start&quot;</span><span class="re2">&gt;</span></span>%START_POSITION_OF_HIT%<span class="sc3"><span class="re1">&lt;/V<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;V</span> <span class="re0">n</span>=<span class="st0">&quot;end&quot;</span><span class="re2">&gt;</span></span>%START_POSITION_OF_HIT%<span class="sc3"><span class="re1">&lt;/V<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;V</span> <span class="re0">n</span>=<span class="st0">&quot;quality&quot;</span><span class="re2">&gt;</span></span>%QUALITY_OF_HIT%<span class="sc3"><span class="re1">&lt;/V<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/An<span class="re2">&gt;</span></span></span>
...
<span class="sc3"><span class="re1">&lt;/An<span class="re2">&gt;</span></span></span></pre></div>
<ul><li> "highlight" is again used as the base annotation.
<ul><li> it contains a named value "text" that contains the originla text that should be highlighted
</li><li> it may contain sub-annotations "positions for marking hits in the text. A "positions" annotation containes the named values
<ul><li> "start" containing the start position of the hit in the text
</li><li> "end" containing the end position of the hit in the text
</li><li> "quality" containing a measure for the quality of the hit
</li></ul>
</li></ul>
</li></ul>
<p>The highlight annotation is processe by a HighlightingTransformer. By some algorithm it finds the positions in the text and adds some markup for highlighting. The "positions" annotations are all removed and the named value "text" is replaced by the text containing the markup. A result has the following annotation structure:
</p>
<div dir="ltr" style="text-align: left;"><pre class="source-xml"><span class="sc3"><span class="re1">&lt;An</span> <span class="re0">n</span>=<span class="st0">&quot;highlight&quot;</span><span class="re2">&gt;</span></span>
<span class="sc3"><span class="re1">&lt;V</span> <span class="re0">n</span>=<span class="st0">&quot;text&quot;</span><span class="re2">&gt;</span></span>The text containing some <span class="sc3"><span class="re1">&lt;b<span class="re2">&gt;</span></span></span>markup<span class="sc3"><span class="re1">&lt;/b<span class="re2">&gt;</span></span></span> to highlight the hits.<span class="sc3"><span class="re1">&lt;/V<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/An<span class="re2">&gt;</span></span></span></pre></div>
<p><br />
</p>
<a name="Configuration_files"></a><h4> <span class="mw-headline"> Configuration files </span></h4>
<p>The HighlightingService itself has no configuration files. It works with Annotations only.
</p>
<a name="Example"></a><h4> <span class="mw-headline"> Example </span></h4>
<p>The following example shows how the HighlightingService is used after a Lucene search.
</p><p><b>searchpipeline.bpel</b>
</p>
<div dir="ltr" style="text-align: left;"><pre class="source-xml">...
<span class="sc3"><span class="re1">&lt;extensionActivity</span> <span class="re0">name</span>=<span class="st0">&quot;invokeLuceneSearchService&quot;</span><span class="re2">&gt;</span></span>
<span class="sc3"><span class="re1">&lt;proc:invokeService<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;proc:service</span> <span class="re0">name</span>=<span class="st0">&quot;LuceneSearchService&quot;</span> <span class="re2">/&gt;</span></span>
<span class="sc3"><span class="re1">&lt;proc:variables</span> <span class="re0">input</span>=<span class="st0">&quot;request&quot;</span> <span class="re0">output</span>=<span class="st0">&quot;request&quot;</span> <span class="re2">/&gt;</span></span>
<span class="sc3"><span class="re1">&lt;proc:setAnnotations<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;rec:An</span> <span class="re0">n</span>=<span class="st0">&quot;org.eclipse.smila.lucene.LuceneSearchService&quot;</span><span class="re2">&gt;</span></span>
<span class="sc3"><span class="re1">&lt;rec:V</span> <span class="re0">n</span>=<span class="st0">&quot;indexName&quot;</span><span class="re2">&gt;</span></span>test_index<span class="sc3"><span class="re1">&lt;/rec:V<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/rec:An<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/proc:setAnnotations<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/proc:invokeService<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/extensionActivity<span class="re2">&gt;</span></span></span>
&nbsp;
<span class="sc3"><span class="re1">&lt;extensionActivity</span> <span class="re0">name</span>=<span class="st0">&quot;invokeHighlightingService&quot;</span><span class="re2">&gt;</span></span>
<span class="sc3"><span class="re1">&lt;proc:invokeService<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;proc:service</span> <span class="re0">name</span>=<span class="st0">&quot;HighlightingService&quot;</span> <span class="re2">/&gt;</span></span>
<span class="sc3"><span class="re1">&lt;proc:variables</span> <span class="re0">input</span>=<span class="st0">&quot;request&quot;</span> <span class="re0">output</span>=<span class="st0">&quot;request&quot;</span> <span class="re2">/&gt;</span></span>
<span class="sc3"><span class="re1">&lt;/proc:invokeService<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/extensionActivity<span class="re2">&gt;</span></span></span>
...</pre></div>
<p><br />
</p>
<a name="HighlightingTransformer"></a><h2> <span class="mw-headline"> HighlightingTransformer </span></h2>
<p>Here is a list of available HighlightingTransformer, a short description and an overview of supported configuration parameters.
Each HighlightingTransformer is an OSGi Declarative Service implementing interface <tt>org.eclipse.smila.search.highlighting.transformer.HighlightingTransformer</tt>. It's service component description file must conatain the property <tt>smila.highlighting.transformer.type</tt> whose value matches the name of the HighlightingTransformer.
</p><p><br />
</p>
<a name="MaxTextLength"></a><h3> <span class="mw-headline"> MaxTextLength </span></h3>
<p>The MaxTextLength highlighting transformer is a very simple transformer that limites the highlighted text to a maximum number of characters.
</p>
<a name="Parameters"></a><h4> <span class="mw-headline"> Parameters </span></h4>
<p>The following parameters are supported:
</p>
<table border="1">
<tr>
<th>Name</th><th>Type</th><th>Constraint</th><th>Default</th><th>Description
</th></tr>
<tr>
<td>MarkupPrefix</td><td>String</td><td>optional</td><td>&lt;b&gt;</td><td>The markup prefix used for highlighting
</td></tr>
<tr>
<td>MarkupSuffix</td><td>String</td><td>optional</td><td>&lt;/b&gt;</td><td>The markup suffix used for highlighting
</td></tr>
<tr>
<td>MaxLength</td><td>Integer</td><td>optional</td><td>300</td><td>Max length of returned highlighted text
</td></tr></table>
<p><br />
</p>
<a name="Sentence"></a><h3> <span class="mw-headline"> Sentence </span></h3>
<p>The Sentence highlighting transformer is able to highlight text while taking sentence boundaries into credit.
</p>
<a name="Parameters_2"></a><h4> <span class="mw-headline"> Parameters </span></h4>
<p>The following parameters are supported:
</p>
<table border="1">
<tr>
<th>Name</th><th>Type</th><th>Constraint</th><th>Default</th><th>Description
</th></tr>
<tr>
<td>MarkupPrefix</td><td>String</td><td>optional</td><td>&lt;b&gt;</td><td>The markup prefix used for highlighting
</td></tr>
<tr>
<td>MarkupSuffix</td><td>String</td><td>optional</td><td>&lt;/b&gt;</td><td>The markup suffix used for highlighting
</td></tr>
<tr>
<td>MaxLength</td><td>Integer</td><td>optional</td><td>300</td><td>Max length of returned highlighted text
</td></tr>
<tr>
<td>MaxHLElements</td><td>Integer</td><td>optional</td><td>-</td><td>Max number of hl elements
</td></tr>
<tr>
<td>MaxSucceedingCharacters</td><td>Integer</td><td>optional</td><td>30</td><td>Max succeeding characters in after of an hl element
</td></tr>
<tr>
<td>SucceedingCharacters</td><td>String</td><td>optional</td><td>-</td><td>Succeeding characters after an hl element
</td></tr>
<tr>
<td>SortAlgorithm</td><td>Enumeration: Score, Occurrence</td><td>optional</td><td>Occurrence</td><td>Sort algorithm for selecting hl elements
</td></tr>
<tr>
<td>TextHandling</td><td>Enumeration: ReturnSnipplet, ReturnFullText, ReturnNoText</td><td>optional</td><td>ReturnFullText</td><td>Sort algorithm for selecting hl elements
</td></tr></table>
<a name="ComplexHLResultAggregation"></a><h3> <span class="mw-headline"> ComplexHLResultAggregation </span></h3>
<p>This is the most complex available algorithm for highlighting.
</p>
<a name="Parameters_3"></a><h4> <span class="mw-headline"> Parameters </span></h4>
<p>The following parameters are supported:
</p>
<table border="1">
<tr>
<th>Name</th><th>Type</th><th>Constraint</th><th>Default</th><th>Description
</th></tr>
<tr>
<td>MarkupPrefix</td><td>String</td><td>optional</td><td>&lt;b&gt;</td><td>The markup prefix used for highlighting
</td></tr>
<tr>
<td>MarkupSuffix</td><td>String</td><td>optional</td><td>&lt;/b&gt;</td><td>The markup suffix used for highlighting
</td></tr>
<tr>
<td>MaxLength</td><td>Integer</td><td>optional</td><td>300</td><td>Max length of returned highlighted text
</td></tr>
<tr>
<td>MaxHLElements</td><td>Integer</td><td>optional</td><td>-</td><td>Max number of hl elements
</td></tr>
<tr>
<td>MaxSucceedingCharacters</td><td>Integer</td><td>optional</td><td>30</td><td>Max succeeding characters in after of an hl element
</td></tr>
<tr>
<td>SucceedingCharacters</td><td>String</td><td>optional</td><td>-</td><td>Succeeding characters after an hl element
</td></tr>
<tr>
<td>SortAlgorithm</td><td>Enumeration: Score, Occurrence</td><td>optional</td><td>Occurrence</td><td>Sort algorithm for selecting hl elements
</td></tr>
<tr>
<td>TextHandling</td><td>Enumeration: ReturnSnipplet, ReturnFullText, ReturnNoText</td><td>optional</td><td>ReturnFullText</td><td>Sort algorithm for selecting hl elements
</td></tr>
<tr>
<td>MaxPrecedingCharacters</td><td>Integer</td><td>optional</td><td>30</td><td>Max preceding characters in front of an hl element
</td></tr>
<tr>
<td>PrecedingCharacters</td><td>String</td><td>optional</td><td>-</td><td>Preceding characters in front of an hl element
</td></tr>
<tr>
<td>HLElementFilter</td><td>Boolean</td><td>optional</td><td>false</td><td>Filter for hl elements containing identical text
</td></tr></table>
<!--
NewPP limit report
Preprocessor node count: 30/1000000
Post-expand include size: 0/2097152 bytes
Template argument size: 0/2097152 bytes
#ifexist count: 0/100
-->
<!-- Saved in parser cache with key wikidb:pcache:idhash:18692-0!1!0!!en!2!edit=0 and timestamp 20110329141331 -->
<div class="printfooter">
Retrieved from "<a href="HighlightingService.html">http://wiki.eclipse.org/SMILA/Documentation/HighlightingService</a>"</div>
<div id="catlinks"><p class='catlinks'><a href="http://wiki.eclipse.org/Special:Categories" title="Special:Categories">Categories</a>: <span dir='ltr'><a href="http://wiki.eclipse.org/Category:SMILA" title="Category:SMILA">SMILA</a></span> | <span dir='ltr'><a href="http://wiki.eclipse.org/index.php?title=Category:SMILA/Processing_Service&amp;action=edit" class="new" title="Category:SMILA/Processing Service">SMILA/Processing Service</a></span></p></div> <!-- end content -->
<div class="visualClear"></div>
</div>
</div>
</div>
<!-- Yoink of toolbox for phoenix moved up -->
</div>
</div>
<div id="clearFooter"/>
<div id="footer" >
<ul id="footernav">
<li class="first"><a href="http://www.eclipse.org/">Home</a></li>
<li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
<li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
<li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
<li><a href="http://www.eclipse.org/org/foundation/contact.php">Contact</a></li>
<li><a href="http://wiki.eclipse.org/Eclipsepedia:About" title="Eclipsepedia:About">About Eclipsepedia</a></li>
</ul>
<span id="copyright">Copyright &copy; 2011 The Eclipse Foundation. All Rights Reserved</span>
<p id="footercredit">This page was last modified 15:34, 25 March 2009 by <a href="http://wiki.eclipse.org/User:Daniel.stucky.empolis.com" title="User:Daniel.stucky.empolis.com">Daniel Stucky</a>. </p>
<p id="footerviews">This page has been accessed 1,489 times.</p>
</div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-910670-4");
pageTracker._trackPageview();
</script>
<!-- <div class="visualClear"></div> -->
<script type="text/javascript">if (window.runOnloadHook) runOnloadHook();</script>
</div>
<!-- Served in 0.057 secs. --></body></html>