123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- <!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"><head>
- <meta http-equiv="X-UA-Compatible" content="IE=edge"></meta>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
- <title>New Stemmers - - README: Web-based Help from DocBook XML</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></meta><link rel="home" href="index.html" title="README: Web-based Help from DocBook XML"></link><link rel="up" href="ch03s02.html" title="Search"></link><link rel="prev" href="ch03s02.html" title="Search"></link><link rel="next" href="ch04.html" title="FAQ"></link><meta name="Section-title" content="New Stemmers"></meta><script type="text/javascript">
- //The id for tree cookie
- var treeCookieId = "treeview-1102";
- var language = "en";
- var w = new Object();
- //Localization
- txt_filesfound = 'Results';
- txt_enter_at_least_1_char = "You must enter at least one character.";
- txt_browser_not_supported = "JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.";
- txt_please_wait = "Please wait. Search in progress...";
- txt_results_for = "Results for: ";
- </script><link rel="shortcut icon" href="favicon.ico" type="image/x-icon"></link><link rel="stylesheet" type="text/css" href="common/css/positioning.css"></link><link rel="stylesheet" type="text/css" href="common/jquery/theme-redmond/jquery-ui-1.8.2.custom.css"></link><link rel="stylesheet" type="text/css" href="common/jquery/treeview/jquery.treeview.css"></link><style type="text/css">
- #noscript{
- font-weight:bold;
- background-color: #55AA55;
- font-weight: bold;
- height: 25spx;
- z-index: 3000;
- top:0px;
- width:100%;
- position: relative;
- border-bottom: solid 5px black;
- text-align:center;
- color: white;
- }
- input {
- margin-bottom: 5px;
- margin-top: 2px;
- }
- .folder {
- display: block;
- height: 22px;
- padding-left: 20px;
- background: transparent url(common/jquery/treeview/images/folder.gif) 0 0px no-repeat;
- }
- span.contentsTab {
- padding-left: 20px;
- background: url(common/images/toc-icon.png) no-repeat 0 center;
- }
- span.searchTab {
- padding-left: 20px;
- background: url(common/images/search-icon.png) no-repeat 0 center;
- }
- /* Overide jquery treeview's defaults for ul. */
- .treeview ul {
- background-color: transparent;
- margin-top: 4px;
- }
- #webhelp-currentid {
- background-color: #D8D8D8 !important;
- }
- .treeview .hover { color: black; }
- .filetree li span a { text-decoration: none; font-size: 12px; color: #517291; }
- /* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/
- .ui-widget-content {
- border: 0px;
- background: none;
- color: none;
- }
- .ui-widget-header {
- color: #e9e8e9;
- border-left: 1px solid #e5e5e5;
- border-right: 1px solid #e5e5e5;
- border-bottom: 1px solid #bbc4c5;
- border-top: 4px solid #e5e5e5;
- border: medium none;
- background: #F4F4F4; /* old browsers */
- background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */
- font-weight: none;
- }
- .ui-widget-header a { color: none; }
- .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
- border: none; background: none; font-weight: none; color: none; }
- .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; }
- .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; }
- .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; }
- .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited {
- color: black; text-decoration: none;
- background: #C6C6C6; /* old browsers */
- background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */
- -webkit-border-radius:15px; -moz-border-radius:10px;
- border: 1px solid #f1f1f1;
- }
- .ui-corner-all { border-radius: 0 0 0 0; }
- .ui-tabs { padding: .2em;}
- .ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;}
- .ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); }
- /**
- * Basic Layout Theme
- *
- * This theme uses the default layout class-names for all classes
- * Add any 'custom class-names', from options: paneClass, resizerClass, togglerClass
- */
- .ui-layout-pane { /* all 'panes' */
- background: #FFF;
- border: 1px solid #BBB;
- padding: 05x;
- overflow: auto;
- }
-
- .ui-layout-resizer { /* all 'resizer-bars' */
- background: #DDD;
- top:100px
- }
- .ui-layout-toggler { /* all 'toggler-buttons' */
- background: #AAA;
- }
-
- </style><!--[if IE]>
- <link rel="stylesheet" type="text/css" href="../common/css/ie.css"/>
- <![endif]--><script type="text/javascript" src="common/browserDetect.js"></script><script type="text/javascript" src="common/jquery/jquery-1.7.2.min.js"></script><script type="text/javascript" src="common/jquery/jquery.ui.all.js"></script><script type="text/javascript" src="common/jquery/jquery.cookie.js"></script><script type="text/javascript" src="common/jquery/treeview/jquery.treeview.min.js"></script><script type="text/javascript" src="common/jquery/layout/jquery.layout.js"></script><script type="text/javascript" src="search/l10n.js"></script><script type="text/javascript" src="search/htmlFileInfoList.js"></script><script type="text/javascript" src="search/nwSearchFnt.js"></script><script type="text/javascript" src="search/stemmers/en_stemmer.js"><!--//make this scalable to other languages as well.--></script><script type="text/javascript" src="search/index-1.js"></script><script type="text/javascript" src="search/index-2.js"></script><script type="text/javascript" src="search/index-3.js"></script></head><body><noscript><div id="noscript">JavaScript is disabled on your browser. Please enable JavaScript to enjoy all the features of this site.</div></noscript><div id="header"><a href="index.html"><img style="margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px" align="right" src="common/images/logo.png" alt=" Documentation"></img></a><h1>README: Web-based Help from DocBook XML<br></br>Search</h1><div id="navheader"><table class="navLinks"><tr><td><a id="showHideButton" href="#" onclick="myLayout.toggle('west')" class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar
- </a></td><td><a accesskey="p" class="navLinkPrevious" tabindex="5" href="ch03s02.html">Prev</a>
- |
- <a accesskey="u" class="navLinkUp" tabindex="5" href="ch03s02.html">Up</a>
- |
- <a accesskey="n" class="navLinkNext" tabindex="5" href="ch04.html">Next</a></td></tr></table></div></div><div id="content"><div class="section"><div xmlns="" class="titlepage"><div><div><h3 xmlns="http://www.w3.org/1999/xhtml" class="title"><a id="idp305376"></a>New Stemmers</h3></div></div></div>
- <p class="summary">Adding new Stemmers is very simple.</p><p>Currently, only English, French, and German stemmers are integrated in to WebHelp. But
- the code is extensible such that you can add new stemmers easily by few steps.</p><p>What you need: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>You'll need two versions of the stemmer; One written in JavaScript, and another
- in Java. But fortunately, Snowball contains Java stemmers for number of popular
- languages, and are already included with the package. You can see the full list in
- <a class="ulink" href="ch02s04.html" target="_top">Adding support for other (non-CJKV) languages</a>.
- If your language is listed there, Then you have to find javascript version of the
- stemmer. Generally, new stemmers are getting added in to <a class="ulink" href="http://snowball.tartarus.org/otherlangs/index.html" target="_top">Snowball Stemmers in
- other languages</a> location. If javascript stemmer for your language is
- available, then download it. Else, you can write a new stemmer in JavaScript using
- SnowBall algorithm fairly easily. Algorithms are at <a class="ulink" href="http://snowball.tartarus.org/" target="_top">Snowball</a>. </p></li><li class="listitem"><p>Then, name the JS stemmer exactly like this:
- <code class="filename">{$language-code}_stemmer.js</code>.
- For example, for Italian(it), name it as,
- <code class="filename">it_stemmer.js</code>. Then, copy it to
- the
- <code class="filename">docbook-webhelp/template/search/stemmers/</code>
- folder. (I assumed
- <code class="filename">docbook-webhelp</code> is the root
- folder for webhelp.) </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Make sure you changed the
- <code class="code">webhelp.indexer.language</code> property
- in <code class="filename">build.properties</code> to your
- language. </p></div><p>
- </p></li><li class="listitem"><p>Now two easy changes needed for the indexer.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>Open
- <code class="filename">docbook-webhelp/indexer/src/com/nexwave/nquindexer/IndexerTask.java</code>
- in a text editor and add your language code to the
- <code class="code">supportedLanguages</code> String Array. </p><div class="example"><a id="idp320496"></a><p class="title"><strong>Example 2. Add new language to supportedLanguages array</strong></p><div class="example-contents"><p> change the Array from,
- </p><pre class="programlisting">
- private String[] supportedLanguages= {"en", "de", "fr", "cn", "ja", "ko"};
- //currently extended support available for
- // English, German, French and CJK (Chinese, Japanese, Korean) languages only.
- </pre><p>
- To,</p><pre class="programlisting">
- private String[] supportedLanguages= {"en", "de", "fr", "cn", "ja", "ko", <span class="emphasis"><em>"it"</em></span>};
- //currently extended support available for
- // English, German, French, CJK (Chinese, Japanese, Korean), and Italian languages only.
- </pre></div></div><br class="example-break"></br></li><li class="listitem"><p> Now, open
- <code class="filename">docbook-webhelp/indexer/src/com/nexwave/nquindexer/SaxHTMLIndex.java</code>
- and add the following line to the code where it initializes the Stemmer (Search
- for <code class="code">SnowballStemmer stemmer;</code>). Then add code to initialize the
- stemmer Object in your language. It's self understandable. See the example. The
- class names are at:
- <code class="filename">docbook-webhelp/indexer/src/com/nexwave/stemmer/snowball/ext/</code>. </p><div class="example"><a id="idp327120"></a><p class="title"><strong>Example 3. Initialize correct stemmer based on the
- <code class="code">webhelp.indexer.language</code> specified</strong></p><div class="example-contents"><pre class="programlisting">
- SnowballStemmer stemmer;
- if(indexerLanguage.equalsIgnoreCase("en")){
- stemmer = new EnglishStemmer();
- } else if (indexerLanguage.equalsIgnoreCase("de")){
- stemmer= new GermanStemmer();
- } else if (indexerLanguage.equalsIgnoreCase("fr")){
- stemmer= new FrenchStemmer();
- }
- <span class="emphasis"><em>else if (indexerLanguage.equalsIgnoreCase("it")){ //If language code is "it" (Italian)
- stemmer= new italianStemmer(); //Initialize the stemmer to <code class="code">italianStemmer</code> object.
- } </em></span>
- else {
- stemmer = null;
- }
- </pre></div></div><br class="example-break"></br></li></ul></div></li></ul></div><p>
- </p><p>That's all. Now run <code class="code">ant build-indexer</code> to compile and build the java code.
- Then, run <code class="code">ant webhelp</code> to generate the output from your docbook file. For any
- questions, contact us or email to the docbook mailing list
- <code class="email"><<a class="email" href="mailto:docbook-apps@lists.oasis-open.org">docbook-apps@lists.oasis-open.org</a>></code>.</p><a id="idp333072" class="indexterm"></a></div><script type="text/javascript" src="common/main.js"></script><script type="text/javascript" src="common/splitterInit.js"></script><div class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch03s02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch04.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></div><div id="sidebar"><div id="leftnavigation" style="padding-top:3px;"><div id="tabs"><ul><li><a href="#treeDiv" style="outline:0;" tabindex="1"><span class="contentsTab">Contents</span></a></li><li><a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"><span class="searchTab">Search</span></a></li></ul><div id="treeDiv"><img src="common/images/loading.gif" alt="loading table of contents..." id="tocLoading" style="display:block;"></img><div id="ulTreeDiv" style="display:none"><ul id="tree" class="filetree"><li><span class="file"><a href="ch01.html" tabindex="1">Introduction</a></span></li><li><span class="file"><a href="ch02.html" tabindex="1">Using the package</a></span><ul><li><span class="file"><a href="ch02s01.html" tabindex="1">Generating webhelp output using the Ant build.xml
- file</a></span></li><li><span class="file"><a href="ch02s02.html" tabindex="1">Using and customizing the output</a></span><ul><li><span class="file"><a href="ch02s02s01.html" tabindex="1">Recommended Apache configurations</a></span></li></ul></li><li><span class="file"><a href="ch02s03.html" tabindex="1">Search indexing</a></span></li><li><span class="file"><a href="ch02s04.html" tabindex="1">Adding support for other (non-CJKV) languages</a></span></li><li><span class="file"><a href="ch02s05.html" tabindex="1">Adding images</a></span></li></ul></li><li><span class="file"><a href="ch03.html" tabindex="1">Developer Docs</a></span><ul><li><span class="file"><a href="ch03s01.html" tabindex="1">Design</a></span></li><li><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li id="webhelp-currentid"><span class="file"><a href="ch03s02s01.html" tabindex="1">New Stemmers</a></span></li></ul></li></ul></li><li><span class="file"><a href="ch04.html" tabindex="1">FAQ</a></span></li><li><span class="file"><a href="ch05.html" tabindex="1">Test section</a></span><ul><li><span class="file"><a href="ch05s01.html" tabindex="1">Some search words for testing</a></span></li><li><span class="file"><a href="ch05s02.html" tabindex="1">Some search words for testing (inflected)</a></span></li></ul></li><li><span class="file"><a href="ix01.html" tabindex="1">Index</a></span></li></ul></div></div><div id="searchDiv"><div id="search"><form onsubmit="Verifie(searchForm);return false" name="searchForm" class="searchForm"><div><input id="textToSearch" name="textToSearch" type="search" placeholder="Search" class="searchText" tabindex="1"></input> <input onclick="Verifie(searchForm)" type="button" class="searchButton" value="Go" id="doSearch" tabindex="1"></input></div></form></div><div id="searchResults"><center></center></div><p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p></div></div></div></div></body></html>
|