diff options
Diffstat (limited to 'webhelp/docs/ch03s02.html')
-rw-r--r-- | webhelp/docs/ch03s02.html | 178 |
1 files changed, 178 insertions, 0 deletions
diff --git a/webhelp/docs/ch03s02.html b/webhelp/docs/ch03s02.html new file mode 100644 index 0000000..8fd6f85 --- /dev/null +++ b/webhelp/docs/ch03s02.html @@ -0,0 +1,178 @@ +<!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>Search - - 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="ch03.html" title="Developer Docs"></link><link rel="prev" href="ch03s01.html" title="Design"></link><link rel="next" href="ch03s02s01.html" title="New Stemmers"></link><meta name="Section-title" content="Search"></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>Developer Docs</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="ch03s01.html">Prev</a> + | + <a accesskey="u" class="navLinkUp" tabindex="5" href="ch03.html">Up</a> + | + <a accesskey="n" class="navLinkNext" tabindex="5" href="ch03s02s01.html">Next</a></td></tr></table></div></div><div id="content"><div class="section"><div xmlns="" class="titlepage"><div><div><h2 xmlns="http://www.w3.org/1999/xhtml" class="title" style="clear: both"><a id="idp282832"></a>Search</h2></div></div></div> +<div class="toc"><dl class="toc"><dt><span class="section"><a href="ch03s02s01.html">New Stemmers</a></span></dt></dl></div><p class="summary">Overview design of Search mechanism.</p><p>The serching is a fully client-side implementation of querying texts for content + searching. There's no server involved. So, the search queries by the users are processed by + JavaScript inside the browser, and displays the matching results by comparing the query with + a simplified 'index' that too resides in JavaScript. Mainly the search mechanism has two + parts. </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Indexing: First we need to traverse the content in + the docs folder and index the words in it. This is done + by <code class="filename">webhelpindexer.jar</code> in + <code class="filename">xsl/extentions/</code> folder. You can + invoke it by <code class="code">ant index</code> command from the + root of webhelp of directory. The source of + webhelpindexer is now moved to it's own location at + <code class="filename">trunk/xsl-webhelpindexer/</code>. + Checkout the Docbook trunk svn directory to get this + source. Then, do your changes and recompile it by simply + running <code class="code">ant</code> command. My assumption is that + it can be opened by Netbeans IDE by one click. Or if you + are using IntelliJ Idea, you can simply create a new + project from existing sources. Indexer has extensive + support for features such as word scoring, stemming of + words, and support for languages English, German, + French. For CJK (Chinese, Japanese, Korean) languages, + it uses bi-gram tokenizing to break up the words (since + CJK languages does not have spaces between + words).</p><p> When <code class="code">ant index</code> is run, it generates five output files: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p><code class="filename">htmlFileList.js</code> - This contains an array named + <code class="code">fl</code> which stores details all the files indexed by the indexer. + Further, the doStem in it defines whether stemming should be used. It defaults + to false.</p></li><li class="listitem"><p><code class="filename">htmlFileInfoList.js</code> - + This includes some meta data about the indexed + files in an array named <code class="code">fil</code>. It + includes details about file name, file (html) + title, a summary of the content. Format would look + like, <code class="code">fil["4"]= "ch03.html@@@Developer + Docs@@@This chapter provides an overview of how + webhelp is implemented.";</code> + </p></li><li class="listitem"><p><code class="filename">index-*.js</code> (Three index files) - These three files + actually stores the index of the content. Index is added to an array named + <code class="code">w</code>.</p></li></ul></div></li><li class="listitem"><p> Querying: Query processing happens totally in client side. Following JavaScript + files handles them. </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p><code class="filename">nwSearchFnt.js</code> - This handles the user query and + returns the search results. It does query word tokenizing, drop unnecessary + punctuations and common words, do stemming if docbook language supports it, + etc.</p></li><li class="listitem"><p><code class="filename">{$indexer-language-code}_stemmer.js</code> - This includes the + stemming library. <code class="filename">nwSearchFnt.js</code> file calls + <code class="code">stemmer</code> method in this file for stemming. ex: <code class="code">var stem = + stemmer(foobar);</code> + </p></li></ul></div><p> + </p></li></ul></div><p> + <a id="idp304304" class="indexterm"></a></p></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="ch03s01.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch03.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch03s02s01.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 id="webhelp-currentid"><span class="file"><a href="ch03s02.html" tabindex="1">Search</a></span><ul><li><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> |