LUCENE-4007: Forrest Chainsaw Massacre

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1328748 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Uwe Schindler 2012-04-22 00:07:15 +00:00
parent 5b59942099
commit 5fba8ae2b4
164 changed files with 1775 additions and 22287 deletions

View File

@ -174,18 +174,6 @@
<license-check-macro dir="${basedir}" />
</target>
<!-- ================================================================== -->
<!-- D O C U M E N T A T I O N -->
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="docs">
<!-- copies the docs over to the docs folder -->
<copy todir="build/docs">
<fileset dir="site/build/site"/>
</copy>
</target>
<target name="resolve">
<sequential>
<ant dir="test-framework" target="resolve" inheritall="false">
@ -195,20 +183,26 @@
</sequential>
</target>
<target name="documentation" description="Generate all documentation"
depends="javadocs,changes-to-html,doc-index"/>
<target name="javadoc" depends="javadocs"/>
<target name="javadocs" description="Generate javadoc"
depends="javadocs-lucene-core, javadocs-modules, javadocs-test-framework">
<echo file="${javadoc.dir}/index.html" append="false">
<![CDATA[<html><head><title>${Name} ${version} Javadoc Index</title></head>
<body>
<h1>${Name} ${version} Javadoc Index</h1>
<ul>
<li><a href="core/index.html">core</a>: Lucene core library</li>
<li><a href="test-framework/index.html">test-framework</a>: Framework for testing Lucene-based applications</li>
]]></echo>
<modules-crawl target="javadocs-index.html" failonerror="true"/>
<echo file="${javadoc.dir}/index.html" append="true"><![CDATA[
</ul></body>]]></echo>
<target name="javadocs" description="Generate javadoc" depends="javadocs-lucene-core, javadocs-modules, javadocs-test-framework"/>
<target name="doc-index">
<pathconvert pathsep="|" dirsep="/" property="buildfiles">
<fileset dir="." includes="**/build.xml" excludes="build.xml,analysis/*,build/**,tools/**,backwards/**,site/**"/>
</pathconvert>
<xslt in="${ant.file}" out="${javadoc.dir}/index.html" style="site/xsl/index.xsl">
<outputproperty name="method" value="html"/>
<outputproperty name="version" value="4.0"/>
<outputproperty name="encoding" value="UTF-8"/>
<outputproperty name="indent" value="yes"/>
<param name="buildfiles" expression="${buildfiles}"/>
<param name="version" expression="${version}"/>
</xslt>
<copy todir="${javadoc.dir}">
<fileset dir="site/html" includes="**/*"/>
</copy>
</target>
<target name="javadocs-modules" description="Generate javadoc for modules classes">
@ -230,7 +224,7 @@
<!-- ================================================================== -->
<!-- -->
<!-- ================================================================== -->
<target name="package" depends="jar-core, jar-test-framework, docs, javadocs, build-modules, init-dist, changes-to-html"/>
<target name="package" depends="jar-core, jar-test-framework, build-modules, init-dist, documentation"/>
<target name="nightly" depends="test, package-tgz">
</target>

View File

@ -124,7 +124,7 @@
<available file="${javadoc.packagelist.dir}/java6/package-list" property="javadoc.java6.packagelist.exists"/>
<property name="javadoc.access" value="protected"/>
<property name="javadoc.charset" value="utf-8"/>
<property name="javadoc.dir" value="${common.dir}/build/docs/api"/>
<property name="javadoc.dir" value="${common.dir}/build/docs"/>
<property name="javadoc.maxmemory" value="512m" />
<!-- Javadoc classpath -->
<path id="javadoc.classpath">

View File

@ -1,8 +0,0 @@
<html>
<head>
<title>Redirecting to docs...</title>
<meta http-equiv=refresh content="0; URL=docs/index.html">
</head>
<body>
</body>
</html>

View File

@ -90,14 +90,6 @@
</sequential>
</macrodef>
<target name="javadocs-index.html" description="Generate line for index.html of JavaDocs">
<xmlproperty file="${ant.file}" collapseAttributes="true"/>
<echo file="${javadoc.dir}/index.html" append="true">
<![CDATA[
<li><a href="${name}/index.html">${name}</a>: ${project.description}</li>
]]></echo>
</target>
<property name="queryparser.jar" value="${common.dir}/build/queryparser/lucene-queryparser-${version}.jar"/>
<target name="check-queryparser-uptodate" unless="queryparser.uptodate">
<module-uptodate name="queryparser" jarfile="${queryparser.jar}" property="queryparser.uptodate"/>

View File

@ -31,5 +31,272 @@ must always be fully qualified in source code in this package.
<p><b>NOTE</b>: {@link org.apache.lucene.queryparser.flexible.standard} has an alternative queryparser that matches the syntax of this one, but is more modular,
enabling substantial customization to how a query is created.
<h2>Query Parser Syntax</h2>
<div id="minitoc-area">
<ul class="minitoc">
<li>
<a href="#Overview">Overview</a>
</li>
<li>
<a href="#Terms">Terms</a>
</li>
<li>
<a href="#Fields">Fields</a>
</li>
<li>
<a href="#Term Modifiers">Term Modifiers</a>
<ul class="minitoc">
<li>
<a href="#Wildcard Searches">Wildcard Searches</a>
</li>
<li>
<a href="#Fuzzy Searches">Fuzzy Searches</a>
</li>
<li>
<a href="#Proximity Searches">Proximity Searches</a>
</li>
<li>
<a href="#Range Searches">Range Searches</a>
</li>
<li>
<a href="#Boosting a Term">Boosting a Term</a>
</li>
</ul>
</li>
<li>
<a href="#Boolean operators">Boolean Operators</a>
<ul class="minitoc">
<li>
<a href="#OR"></a>
</li>
<li>
<a href="#AND">AND</a>
</li>
<li>
<a href="#+">+</a>
</li>
<li>
<a href="#NOT">NOT</a>
</li>
<li>
<a href="#-">-</a>
</li>
</ul>
</li>
<li>
<a href="#Grouping">Grouping</a>
</li>
<li>
<a href="#Field Grouping">Field Grouping</a>
</li>
<li>
<a href="#Escaping Special Characters">Escaping Special Characters</a>
</li>
</ul>
</div>
<a name="N10013"></a><a name="Overview"></a>
<h2 class="boxed">Overview</h2>
<div class="section">
<p>Although Lucene provides the ability to create your own
queries through its API, it also provides a rich query
language through the Query Parser, a lexer which
interprets a string into a Lucene Query using JavaCC.
</p>
<p>Generally, the query parser syntax may change from
release to release. This page describes the syntax as of
the current release. If you are using a different
version of Lucene, please consult the copy of
<span class="codefrag">docs/queryparsersyntax.html</span> that was distributed
with the version you are using.
</p>
<p>
Before choosing to use the provided Query Parser, please consider the following:
<ol>
<li>If you are programmatically generating a query string and then
parsing it with the query parser then you should seriously consider building
your queries directly with the query API. In other words, the query
parser is designed for human-entered text, not for program-generated
text.</li>
<li>Untokenized fields are best added directly to queries, and not
through the query parser. If a field's values are generated programmatically
by the application, then so should query clauses for this field.
An analyzer, which the query parser uses, is designed to convert human-entered
text to terms. Program-generated values, like dates, keywords, etc.,
should be consistently program-generated.</li>
<li>In a query form, fields which are general text should use the query
parser. All others, such as date ranges, keywords, etc. are better added
directly through the query API. A field with a limit set of values,
that can be specified with a pull-down menu should not be added to a
query string which is subsequently parsed, but rather added as a
TermQuery clause.</li>
</ol>
</p>
</div>
<a name="N10032"></a><a name="Terms"></a>
<h2 class="boxed">Terms</h2>
<div class="section">
<p>A query is broken up into terms and operators. There are two types of terms: Single Terms and Phrases.</p>
<p>A Single Term is a single word such as "test" or "hello".</p>
<p>A Phrase is a group of words surrounded by double quotes such as "hello dolly".</p>
<p>Multiple terms can be combined together with Boolean operators to form a more complex query (see below).</p>
<p>Note: The analyzer used to create the index will be used on the terms and phrases in the query string.
So it is important to choose an analyzer that will not interfere with the terms used in the query string.</p>
</div>
<a name="N10048"></a><a name="Fields"></a>
<h2 class="boxed">Fields</h2>
<div class="section">
<p>Lucene supports fielded data. When performing a search you can either specify a field, or use the default field. The field names and default field is implementation specific.</p>
<p>You can search any field by typing the field name followed by a colon ":" and then the term you are looking for. </p>
<p>As an example, let's assume a Lucene index contains two fields, title and text and text is the default field.
If you want to find the document entitled "The Right Way" which contains the text "don't go this way", you can enter: </p>
<pre class="code">title:"The Right Way" AND text:go</pre>
<p>or</p>
<pre class="code">title:"Do it right" AND right</pre>
<p>Since text is the default field, the field indicator is not required.</p>
<p>Note: The field is only valid for the term that it directly precedes, so the query</p>
<pre class="code">title:Do it right</pre>
<p>Will only find "Do" in the title field. It will find "it" and "right" in the default field (in this case the text field). </p>
</div>
<a name="N1006D"></a><a name="Term Modifiers"></a>
<h2 class="boxed">Term Modifiers</h2>
<div class="section">
<p>Lucene supports modifying query terms to provide a wide range of searching options.</p>
<a name="N10076"></a><a name="Wildcard Searches"></a>
<h3 class="boxed">Wildcard Searches</h3>
<p>Lucene supports single and multiple character wildcard searches within single terms
(not within phrase queries).</p>
<p>To perform a single character wildcard search use the "?" symbol.</p>
<p>To perform a multiple character wildcard search use the "*" symbol.</p>
<p>The single character wildcard search looks for terms that match that with the single character replaced. For example, to search for "text" or "test" you can use the search:</p>
<pre class="code">te?t</pre>
<p>Multiple character wildcard searches looks for 0 or more characters. For example, to search for test, tests or tester, you can use the search: </p>
<pre class="code">test*</pre>
<p>You can also use the wildcard searches in the middle of a term.</p>
<pre class="code">te*t</pre>
<p>Note: You cannot use a * or ? symbol as the first character of a search.</p>
<a name="N1009B"></a><a name="Fuzzy Searches"></a>
<h3 class="boxed">Fuzzy Searches</h3>
<p>Lucene supports fuzzy searches based on the Levenshtein Distance, or Edit Distance algorithm. To do a fuzzy search use the tilde, "~", symbol at the end of a Single word Term. For example to search for a term similar in spelling to "roam" use the fuzzy search: </p>
<pre class="code">roam~</pre>
<p>This search will find terms like foam and roams.</p>
<p>Starting with Lucene 1.9 an additional (optional) parameter can specify the required similarity. The value is between 0 and 1, with a value closer to 1 only terms with a higher similarity will be matched. For example:</p>
<pre class="code">roam~0.8</pre>
<p>The default that is used if the parameter is not given is 0.5.</p>
<a name="N100B4"></a><a name="Proximity Searches"></a>
<h3 class="boxed">Proximity Searches</h3>
<p>Lucene supports finding words are a within a specific distance away. To do a proximity search use the tilde, "~", symbol at the end of a Phrase. For example to search for a "apache" and "jakarta" within 10 words of each other in a document use the search: </p>
<pre class="code">"jakarta apache"~10</pre>
<a name="N100C1"></a><a name="Range Searches"></a>
<h3 class="boxed">Range Searches</h3>
<p>Range Queries allow one to match documents whose field(s) values
are between the lower and upper bound specified by the Range Query.
Range Queries can be inclusive or exclusive of the upper and lower bounds.
Sorting is done lexicographically.</p>
<pre class="code">mod_date:[20020101 TO 20030101]</pre>
<p>This will find documents whose mod_date fields have values between 20020101 and 20030101, inclusive.
Note that Range Queries are not reserved for date fields. You could also use range queries with non-date fields:</p>
<pre class="code">title:{Aida TO Carmen}</pre>
<p>This will find all documents whose titles are between Aida and Carmen, but not including Aida and Carmen.</p>
<p>Inclusive range queries are denoted by square brackets. Exclusive range queries are denoted by
curly brackets.</p>
<a name="N100DA"></a><a name="Boosting a Term"></a>
<h3 class="boxed">Boosting a Term</h3>
<p>Lucene provides the relevance level of matching documents based on the terms found. To boost a term use the caret, "^", symbol with a boost factor (a number) at the end of the term you are searching. The higher the boost factor, the more relevant the term will be.</p>
<p>Boosting allows you to control the relevance of a document by boosting its term. For example, if you are searching for</p>
<pre class="code">jakarta apache</pre>
<p>and you want the term "jakarta" to be more relevant boost it using the ^ symbol along with the boost factor next to the term.
You would type:</p>
<pre class="code">jakarta^4 apache</pre>
<p>This will make documents with the term jakarta appear more relevant. You can also boost Phrase Terms as in the example: </p>
<pre class="code">"jakarta apache"^4 "Apache Lucene"</pre>
<p>By default, the boost factor is 1. Although the boost factor must be positive, it can be less than 1 (e.g. 0.2)</p>
</div>
<a name="N100FA"></a><a name="Boolean operators"></a>
<h2 class="boxed">Boolean Operators</h2>
<div class="section">
<p>Boolean operators allow terms to be combined through logic operators.
Lucene supports AND, "+", OR, NOT and "-" as Boolean operators(Note: Boolean operators must be ALL CAPS).</p>
<a name="N10103"></a><a name="OR"></a>
<h3 class="boxed"></h3>
<p>The OR operator is the default conjunction operator. This means that if there is no Boolean operator between two terms, the OR operator is used.
The OR operator links two terms and finds a matching document if either of the terms exist in a document. This is equivalent to a union using sets.
The symbol || can be used in place of the word OR.</p>
<p>To search for documents that contain either "jakarta apache" or just "jakarta" use the query:</p>
<pre class="code">"jakarta apache" jakarta</pre>
<p>or</p>
<pre class="code">"jakarta apache" OR jakarta</pre>
<a name="N10116"></a><a name="AND"></a>
<h3 class="boxed">AND</h3>
<p>The AND operator matches documents where both terms exist anywhere in the text of a single document.
This is equivalent to an intersection using sets. The symbol &amp;&amp; can be used in place of the word AND.</p>
<p>To search for documents that contain "jakarta apache" and "Apache Lucene" use the query: </p>
<pre class="code">"jakarta apache" AND "Apache Lucene"</pre>
<a name="N10126"></a><a name="+"></a>
<h3 class="boxed">+</h3>
<p>The "+" or required operator requires that the term after the "+" symbol exist somewhere in a the field of a single document.</p>
<p>To search for documents that must contain "jakarta" and may contain "lucene" use the query:</p>
<pre class="code">+jakarta lucene</pre>
<a name="N10136"></a><a name="NOT"></a>
<h3 class="boxed">NOT</h3>
<p>The NOT operator excludes documents that contain the term after NOT.
This is equivalent to a difference using sets. The symbol ! can be used in place of the word NOT.</p>
<p>To search for documents that contain "jakarta apache" but not "Apache Lucene" use the query: </p>
<pre class="code">"jakarta apache" NOT "Apache Lucene"</pre>
<p>Note: The NOT operator cannot be used with just one term. For example, the following search will return no results:</p>
<pre class="code">NOT "jakarta apache"</pre>
<a name="N1014C"></a><a name="-"></a>
<h3 class="boxed">-</h3>
<p>The "-" or prohibit operator excludes documents that contain the term after the "-" symbol.</p>
<p>To search for documents that contain "jakarta apache" but not "Apache Lucene" use the query: </p>
<pre class="code">"jakarta apache" -"Apache Lucene"</pre>
</div>
<a name="N1015D"></a><a name="Grouping"></a>
<h2 class="boxed">Grouping</h2>
<div class="section">
<p>Lucene supports using parentheses to group clauses to form sub queries. This can be very useful if you want to control the boolean logic for a query.</p>
<p>To search for either "jakarta" or "apache" and "website" use the query:</p>
<pre class="code">(jakarta OR apache) AND website</pre>
<p>This eliminates any confusion and makes sure you that website must exist and either term jakarta or apache may exist.</p>
</div>
<a name="N10170"></a><a name="Field Grouping"></a>
<h2 class="boxed">Field Grouping</h2>
<div class="section">
<p>Lucene supports using parentheses to group multiple clauses to a single field.</p>
<p>To search for a title that contains both the word "return" and the phrase "pink panther" use the query:</p>
<pre class="code">title:(+return +"pink panther")</pre>
</div>
<a name="N10180"></a><a name="Escaping Special Characters"></a>
<h2 class="boxed">Escaping Special Characters</h2>
<div class="section">
<p>Lucene supports escaping special characters that are part of the query syntax. The current list special characters are</p>
<p>+ - &amp;&amp; || ! ( ) { } [ ] ^ " ~ * ? : \</p>
<p>To escape these character use the \ before the character. For example to search for (1+1):2 use the query:</p>
<pre class="code">\(1\+1\)\:2</pre>
</div>
</body>
</html>

View File

@ -1,3 +0,0 @@
#Forrest generates UTF-8 by default, but these httpd servers are
#ignoring the meta http-equiv charset tags
AddDefaultCharset off

View File

@ -1,2 +0,0 @@
<broken-links>
</broken-links>

View File

@ -1,756 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="lucene">
<title>
Apache Lucene - Contributions
</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
<link type="text/css" href="skin/profile.css" rel="stylesheet">
<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
<link rel="shortcut icon" href="images/favicon.ico">
</head>
<body onload="init()">
<script type="text/javascript">ndeSetTextSize();</script>
<div id="top">
<!--+
|breadtrail
+-->
<div class="breadtrail">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://lucene.apache.org/">Lucene</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
</div>
<!--+
|header
+-->
<div class="header">
<!--+
|start group logo
+-->
<div class="grouplogo">
<a href="http://lucene.apache.org/"><img class="logoImage" alt="Lucene" src="http://www.apache.org/images/asf_logo_simple.png" title="Apache Lucene"></a>
</div>
<!--+
|end group logo
+-->
<!--+
|start Project Logo
+-->
<div class="projectlogo">
<a href="http://lucene.apache.org/java/"><img class="logoImage" alt="Lucene" src="http://lucene.apache.org/images/lucene_green_300.gif" title="Apache Lucene is a high-performance, full-featured text search engine library written entirely in
Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform."></a>
</div>
<!--+
|end Project Logo
+-->
<!--+
|start Search
+-->
<div class="searchbox">
<form action="http://search.lucidimagination.com/p:lucene" method="get" class="roundtopsmall">
<input onFocus="getBlank (this, 'Search the site with Lucene');" size="25" name="q" id="query" type="text" value="Search the site with Lucene">&nbsp;
<input name="Search" value="Search" type="submit">
</form>
<div style="position: relative; top: -5px; left: -10px">Powered by <a href="http://www.lucidimagination.com" style="color: #033268">Lucid Imagination</a>
</div>
</div>
<!--+
|end search
+-->
<!--+
|start Tabs
+-->
<ul id="tabs">
<li class="current">
<a class="selected" href="http://lucene.apache.org/java/docs/">Main</a>
</li>
<li>
<a class="unselected" href="http://wiki.apache.org/lucene-java">Wiki</a>
</li>
<li class="current">
<a class="selected" href="index.html">Lucene 4.0 Documentation</a>
</li>
</ul>
<!--+
|end Tabs
+-->
</div>
</div>
<div id="main">
<div id="publishedStrip">
<!--+
|start Subtabs
+-->
<div id="level2tabs"></div>
<!--+
|end Endtabs
+-->
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<!--+
|breadtrail
+-->
<div class="breadtrail">
&nbsp;
</div>
<!--+
|start Menu, mainarea
+-->
<!--+
|start Menu
+-->
<div id="menu">
<div onclick="SwitchMenu('menu_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Documentation</div>
<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
<div class="menuitem">
<a href="index.html">Overview</a>
</div>
<div class="menuitem">
<a href="changes/Changes.html">Changes</a>
</div>
<div onclick="SwitchMenu('menu_1.1.3', 'skin/')" id="menu_1.1.3Title" class="menutitle">Javadocs</div>
<div id="menu_1.1.3" class="menuitemgroup">
<div class="menuitem">
<a href="api/core/index.html">Core</a>
</div>
<div class="menuitem">
<a href="api/analyzers-common/index.html">Analysis: Common</a>
</div>
<div class="menuitem">
<a href="api/analyzers-kuromoji/index.html">Analysis: Kuromoji (Japanese)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-morfologik/index.html">Analysis: Morfologik (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-phonetic/index.html">Analysis: Phonetic</a>
</div>
<div class="menuitem">
<a href="api/analyzers-smartcn/index.html">Analysis: Smart Chinese</a>
</div>
<div class="menuitem">
<a href="api/analyzers-stempel/index.html">Analysis: Stempel (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-uima/index.html">Analysis: UIMA</a>
</div>
<div class="menuitem">
<a href="api/benchmark/index.html">Benchmark</a>
</div>
<div class="menuitem">
<a href="api/demo/index.html">Demo</a>
</div>
<div class="menuitem">
<a href="api/facet/index.html">Faceting</a>
</div>
<div class="menuitem">
<a href="api/grouping/index.html">Grouping</a>
</div>
<div class="menuitem">
<a href="api/highlighter/index.html">Highlighter</a>
</div>
<div class="menuitem">
<a href="api/join/index.html">Join</a>
</div>
<div class="menuitem">
<a href="api/memory/index.html">Memory</a>
</div>
<div class="menuitem">
<a href="api/misc/index.html">Miscellaneous</a>
</div>
<div class="menuitem">
<a href="api/queries/index.html">Queries</a>
</div>
<div class="menuitem">
<a href="api/queryparser/index.html">Query Parsers</a>
</div>
<div class="menuitem">
<a href="api/sandbox/index.html">Sandbox</a>
</div>
<div class="menuitem">
<a href="api/spatial/index.html">Spatial</a>
</div>
<div class="menuitem">
<a href="api/suggest/index.html">Suggest / Spellcheck</a>
</div>
<div class="menuitem">
<a href="api/test-framework/index.html">Test Framework</a>
</div>
</div>
<div class="menuitem">
<a href="systemrequirements.html">System Requirements</a>
</div>
<div class="menupage">
<div class="menupagetitle">Contributions</div>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java/LuceneFAQ">FAQ</a>
</div>
<div class="menuitem">
<a href="fileformats.html">File Formats</a>
</div>
<div class="menuitem">
<a href="gettingstarted.html">Getting Started</a>
</div>
<div class="menuitem">
<a href="queryparsersyntax.html">Query Syntax</a>
</div>
<div class="menuitem">
<a href="scoring.html">Scoring</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java">Wiki</a>
</div>
<div class="menuitem">
<a href="http://lucene.apache.org/privacy.html">Privacy Policy</a>
</div>
</div>
<div id="credit"></div>
<div id="roundbottom">
<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
<!--+
|alternative credits
+-->
<div id="credit2"></div>
</div>
<!--+
|end Menu
+-->
<!--+
|start content
+-->
<div id="content">
<h1>
Apache Lucene - Contributions
</h1>
<div id="minitoc-area">
<ul class="minitoc">
<li>
<a href="#Overview">Overview</a>
</li>
<li>
<a href="#Lucene Tools">Lucene Tools</a>
<ul class="minitoc">
<li>
<a href="#Luke">Luke</a>
</li>
<li>
<a href="#LIMO (Lucene Index Monitor)">LIMO (Lucene Index Monitor)</a>
</li>
</ul>
</li>
<li>
<a href="#Lucene Document Converters">Lucene Document Converters</a>
<ul class="minitoc">
<li>
<a href="#XML Document #1">XML Document #1</a>
</li>
<li>
<a href="#XML Document #2">XML Document #2</a>
</li>
<li>
<a href="#PDF Box">PDF Box</a>
</li>
<li>
<a href="#XPDF - PDF Document Conversion">XPDF - PDF Document Conversion</a>
</li>
<li>
<a href="#PDFTextStream -- PDF text and metadata extraction">PDFTextStream -- PDF text and metadata extraction</a>
</li>
<li>
<a href="#PJ Classic &amp; PJ Professional - PDF Document Conversion">PJ Classic &amp; PJ Professional - PDF Document Conversion</a>
</li>
</ul>
</li>
<li>
<a href="#Miscellaneous">Miscellaneous</a>
<ul class="minitoc">
<li>
<a href="#Arabic Analyzer for Java">Arabic Analyzer for Java</a>
</li>
<li>
<a href="#Phonetix">Phonetix</a>
</li>
<li>
<a href="#ejIndex - JBoss MBean for Lucene">ejIndex - JBoss MBean for Lucene</a>
</li>
<li>
<a href="#JavaCC">JavaCC</a>
</li>
<li>
<a href="#LuSQL">LuSQL - Index databases with Lucene</a>
</li>
</ul>
</li>
</ul>
</div>
<a name="N10013"></a><a name="Overview"></a>
<h2 class="boxed">Overview</h2>
<div class="section">
<p>This page lists external Lucene resources. If you have
written something that should be included, please post all
relevant information to one of the mailing lists. Nothing
listed here is directly supported by the Lucene
developers, so if you encounter any problems with any of
this software, please use the author's contact information
to get help.</p>
<p>If you are looking for information on contributing patches or other improvements to Lucene, see
<a href="http://wiki.apache.org/lucene-java/HowToContribute">How To Contribute</a> on the Lucene Wiki.</p>
</div>
<a name="N10024"></a><a name="Lucene Tools"></a>
<h2 class="boxed">Lucene Tools</h2>
<div class="section">
<p>
Software that works with Lucene indices.
</p>
<a name="N1002D"></a><a name="Luke"></a>
<h3 class="boxed">Luke</h3>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://www.getopt.org/luke/">
http://www.getopt.org/luke/
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Andrzej Bialecki
</td>
</tr>
</table>
<a name="N1004E"></a><a name="LIMO (Lucene Index Monitor)"></a>
<h3 class="boxed">LIMO (Lucene Index Monitor)</h3>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://limo.sf.net/">
http://limo.sf.net/
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Julien Nioche
</td>
</tr>
</table>
</div>
<a name="N10071"></a><a name="Lucene Document Converters"></a>
<h2 class="boxed">Lucene Document Converters</h2>
<div class="section">
<p>
Lucene requires information you want to index to be
converted into a Document class. Here are
contributions for various solutions that convert different
content types to Lucene's Document classes.
</p>
<a name="N1007A"></a><a name="XML Document #1"></a>
<h3 class="boxed">XML Document #1</h3>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://marc.theaimsgroup.com/?l=lucene-dev&amp;m=100723333506246&amp;w=2">
http://marc.theaimsgroup.com/?l=lucene-dev&amp;m=100723333506246&amp;w=2
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Philip Ogren - ogren@mayo.edu
</td>
</tr>
</table>
<a name="N1009C"></a><a name="XML Document #2"></a>
<h3 class="boxed">XML Document #2</h3>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://www.mail-archive.com/lucene-user@jakarta.apache.org/msg00346.html">
http://www.mail-archive.com/lucene-user@jakarta.apache.org/msg00346.html
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Peter Carlson - carlson@bookandhammer.com
</td>
</tr>
</table>
<a name="N100BE"></a><a name="PDF Box"></a>
<h3 class="boxed">PDF Box</h3>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://www.pdfbox.org/">
http://www.pdfbox.org/
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Ben Litchfield - ben@csh.rit.edu
</td>
</tr>
</table>
<a name="N100E0"></a><a name="XPDF - PDF Document Conversion"></a>
<h3 class="boxed">XPDF - PDF Document Conversion</h3>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://www.foolabs.com/xpdf">
http://www.foolabs.com/xpdf
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
N/A
</td>
</tr>
</table>
<a name="N10102"></a><a name="PDFTextStream -- PDF text and metadata extraction"></a>
<h3 class="boxed">PDFTextStream -- PDF text and metadata extraction</h3>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://snowtide.com">
http://snowtide.com
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
N/A
</td>
</tr>
</table>
<a name="N10124"></a><a name="PJ Classic &amp; PJ Professional - PDF Document Conversion"></a>
<h3 class="boxed">PJ Classic &amp; PJ Professional - PDF Document Conversion</h3>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th width="%1">
URL
</th>
<td>
<a href=" http://www.etymon.com/">
http://www.etymon.com/
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
N/A
</td>
</tr>
</table>
</div>
<a name="N10147"></a><a name="Miscellaneous"></a>
<h2 class="boxed">Miscellaneous</h2>
<div class="section">
<p>
</p>
<a name="N10150"></a><a name="Arabic Analyzer for Java"></a>
<h3 class="boxed">Arabic Analyzer for Java</h3>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://savannah.nongnu.org/projects/aramorph">
http://savannah.nongnu.org/projects/aramorph
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Pierrick Brihaye
</td>
</tr>
</table>
<a name="N10172"></a><a name="Phonetix"></a>
<h3 class="boxed">Phonetix</h3>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://www.companywebstore.de/tangentum/mirror/en/products/phonetix/index.html">
http://www.companywebstore.de/tangentum/mirror/en/products/phonetix/index.html
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
tangentum technologies
</td>
</tr>
</table>
<a name="N10194"></a><a name="ejIndex - JBoss MBean for Lucene"></a>
<h3 class="boxed">ejIndex - JBoss MBean for Lucene</h3>
<p>
</p>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://ejindex.sourceforge.net/">
http://ejindex.sourceforge.net/
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Andy Scholz
</td>
</tr>
</table>
<a name="N101B9"></a><a name="JavaCC"></a>
<h3 class="boxed">JavaCC</h3>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th width="%1">
URL
</th>
<td>
<a href="https://javacc.dev.java.net/">
https://javacc.dev.java.net/
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Sun Microsystems (java.net)
</td>
</tr>
</table>
<a name="N101DB"></a><a name="LuSQL"></a>
<h3 class="boxed">LuSQL - Index databases with Lucene</h3>
<table class="ForrestTable" cellspacing="1" cellpadding="4">
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://lab.cisti-icist.nrc-cnrc.gc.ca/cistilabswiki/index.php/LuSql">
http://lab.cisti-icist.nrc-cnrc.gc.ca/cistilabswiki/index.php/LuSql
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Glen Newton
</td>
</tr>
</table>
</div>
</div>
<!--+
|end content
+-->
<div class="clearboth">&nbsp;</div>
</div>
<div id="footer">
<!--+
|start bottomstrip
+-->
<div class="lastmodified">
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<div class="copyright">
Copyright &copy;
2006 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
<!--+
|end bottomstrip
+-->
</div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-94576-12']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>

View File

@ -1,372 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="lucene">
<title>
Apache Lucene - Building and Installing the Basic Demo
</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
<link type="text/css" href="skin/profile.css" rel="stylesheet">
<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
<link rel="shortcut icon" href="images/favicon.ico">
</head>
<body onload="init()">
<script type="text/javascript">ndeSetTextSize();</script>
<div id="top">
<!--+
|breadtrail
+-->
<div class="breadtrail">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://lucene.apache.org/">Lucene</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
</div>
<!--+
|header
+-->
<div class="header">
<!--+
|start group logo
+-->
<div class="grouplogo">
<a href="http://lucene.apache.org/"><img class="logoImage" alt="Lucene" src="http://www.apache.org/images/asf_logo_simple.png" title="Apache Lucene"></a>
</div>
<!--+
|end group logo
+-->
<!--+
|start Project Logo
+-->
<div class="projectlogo">
<a href="http://lucene.apache.org/java/"><img class="logoImage" alt="Lucene" src="http://lucene.apache.org/images/lucene_green_300.gif" title="Apache Lucene is a high-performance, full-featured text search engine library written entirely in
Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform."></a>
</div>
<!--+
|end Project Logo
+-->
<!--+
|start Search
+-->
<div class="searchbox">
<form action="http://search.lucidimagination.com/p:lucene" method="get" class="roundtopsmall">
<input onFocus="getBlank (this, 'Search the site with Lucene');" size="25" name="q" id="query" type="text" value="Search the site with Lucene">&nbsp;
<input name="Search" value="Search" type="submit">
</form>
<div style="position: relative; top: -5px; left: -10px">Powered by <a href="http://www.lucidimagination.com" style="color: #033268">Lucid Imagination</a>
</div>
</div>
<!--+
|end search
+-->
<!--+
|start Tabs
+-->
<ul id="tabs">
<li class="current">
<a class="selected" href="http://lucene.apache.org/java/docs/">Main</a>
</li>
<li>
<a class="unselected" href="http://wiki.apache.org/lucene-java">Wiki</a>
</li>
<li class="current">
<a class="selected" href="index.html">Lucene 4.0 Documentation</a>
</li>
</ul>
<!--+
|end Tabs
+-->
</div>
</div>
<div id="main">
<div id="publishedStrip">
<!--+
|start Subtabs
+-->
<div id="level2tabs"></div>
<!--+
|end Endtabs
+-->
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<!--+
|breadtrail
+-->
<div class="breadtrail">
&nbsp;
</div>
<!--+
|start Menu, mainarea
+-->
<!--+
|start Menu
+-->
<div id="menu">
<div onclick="SwitchMenu('menu_1.1', 'skin/')" id="menu_1.1Title" class="menutitle">Documentation</div>
<div id="menu_1.1" class="menuitemgroup">
<div class="menuitem">
<a href="index.html">Overview</a>
</div>
<div class="menuitem">
<a href="changes/Changes.html">Changes</a>
</div>
<div onclick="SwitchMenu('menu_1.1.3', 'skin/')" id="menu_1.1.3Title" class="menutitle">Javadocs</div>
<div id="menu_1.1.3" class="menuitemgroup">
<div class="menuitem">
<a href="api/core/index.html">Core</a>
</div>
<div class="menuitem">
<a href="api/analyzers-common/index.html">Analysis: Common</a>
</div>
<div class="menuitem">
<a href="api/analyzers-kuromoji/index.html">Analysis: Kuromoji (Japanese)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-morfologik/index.html">Analysis: Morfologik (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-phonetic/index.html">Analysis: Phonetic</a>
</div>
<div class="menuitem">
<a href="api/analyzers-smartcn/index.html">Analysis: Smart Chinese</a>
</div>
<div class="menuitem">
<a href="api/analyzers-stempel/index.html">Analysis: Stempel (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-uima/index.html">Analysis: UIMA</a>
</div>
<div class="menuitem">
<a href="api/benchmark/index.html">Benchmark</a>
</div>
<div class="menuitem">
<a href="api/demo/index.html">Demo</a>
</div>
<div class="menuitem">
<a href="api/facet/index.html">Faceting</a>
</div>
<div class="menuitem">
<a href="api/grouping/index.html">Grouping</a>
</div>
<div class="menuitem">
<a href="api/highlighter/index.html">Highlighter</a>
</div>
<div class="menuitem">
<a href="api/join/index.html">Join</a>
</div>
<div class="menuitem">
<a href="api/memory/index.html">Memory</a>
</div>
<div class="menuitem">
<a href="api/misc/index.html">Miscellaneous</a>
</div>
<div class="menuitem">
<a href="api/queries/index.html">Queries</a>
</div>
<div class="menuitem">
<a href="api/queryparser/index.html">Query Parsers</a>
</div>
<div class="menuitem">
<a href="api/sandbox/index.html">Sandbox</a>
</div>
<div class="menuitem">
<a href="api/spatial/index.html">Spatial</a>
</div>
<div class="menuitem">
<a href="api/suggest/index.html">Suggest / Spellcheck</a>
</div>
<div class="menuitem">
<a href="api/test-framework/index.html">Test Framework</a>
</div>
</div>
<div class="menuitem">
<a href="systemrequirements.html">System Requirements</a>
</div>
<div class="menuitem">
<a href="contributions.html">Contributions</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java/LuceneFAQ">FAQ</a>
</div>
<div class="menuitem">
<a href="fileformats.html">File Formats</a>
</div>
<div class="menuitem">
<a href="gettingstarted.html">Getting Started</a>
</div>
<div class="menuitem">
<a href="queryparsersyntax.html">Query Syntax</a>
</div>
<div class="menuitem">
<a href="scoring.html">Scoring</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java">Wiki</a>
</div>
<div class="menuitem">
<a href="http://lucene.apache.org/privacy.html">Privacy Policy</a>
</div>
</div>
<div id="credit"></div>
<div id="roundbottom">
<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
<!--+
|alternative credits
+-->
<div id="credit2"></div>
</div>
<!--+
|end Menu
+-->
<!--+
|start content
+-->
<div id="content">
<h1>
Apache Lucene - Building and Installing the Basic Demo
</h1>
<div id="minitoc-area">
<ul class="minitoc">
<li>
<a href="#About this Document">About this Document</a>
</li>
<li>
<a href="#About the Demo">About the Demo</a>
</li>
<li>
<a href="#Setting your CLASSPATH">Setting your CLASSPATH</a>
</li>
<li>
<a href="#Indexing Files">Indexing Files</a>
</li>
<li>
<a href="#About the code...">About the code...</a>
</li>
</ul>
</div>
<a name="N10013"></a><a name="About this Document"></a>
<h2 class="boxed">About this Document</h2>
<div class="section">
<p>
This document is intended as a "getting started" guide to using and running the Lucene demos.
It walks you through some basic installation and configuration.
</p>
</div>
<a name="N1001C"></a><a name="About the Demo"></a>
<h2 class="boxed">About the Demo</h2>
<div class="section">
<p>
The Lucene command-line demo code consists of an application that demonstrates various
functionalities of Lucene and how you can add Lucene to your applications.
</p>
</div>
<a name="N10025"></a><a name="Setting your CLASSPATH"></a>
<h2 class="boxed">Setting your CLASSPATH</h2>
<div class="section">
<p>
First, you should <a href="http://www.apache.org/dyn/closer.cgi/lucene/java/">download</a> the
latest Lucene distribution and then extract it to a working directory.
</p>
<p>
You need three JARs: the Lucene JAR, the common analysis JAR, and the Lucene demo JAR. You should
see the Lucene JAR file in the core/ directory you created when you extracted the archive -- it
should be named something like <span class="codefrag">lucene-core-{version}.jar</span>. You should also see files
called <span class="codefrag">lucene-analyzers-common-{version}.jar</span> and <span class="codefrag">lucene-demo-{version}.jar</span>
under analysis/common/ and demo/, respectively.
</p>
<p>
Put all three of these files in your Java CLASSPATH.
</p>
</div>
<a name="N10041"></a><a name="Indexing Files"></a>
<h2 class="boxed">Indexing Files</h2>
<div class="section">
<p>
Once you've gotten this far you're probably itching to go. Let's <b>build an index!</b> Assuming
you've set your CLASSPATH correctly, just type:
<pre>
java org.apache.lucene.demo.IndexFiles -docs {path-to-lucene}/src
</pre>
This will produce a subdirectory called <span class="codefrag">index</span> which will contain an index of all of the
Lucene source code.
</p>
<p>
To <b>search the index</b> type:
<pre>
java org.apache.lucene.demo.SearchFiles
</pre>
You'll be prompted for a query. Type in a swear word and press the enter key. You'll see that the
Lucene developers are very well mannered and get no results. Now try entering the word "string".
That should return a whole bunch of documents. The results will page at every tenth result and ask
you whether you want more results.
</p>
</div>
<a name="N1005C"></a><a name="About the code..."></a>
<h2 class="boxed">About the code...</h2>
<div class="section">
<p>
<a href="demo2.html">read on&gt;&gt;&gt;</a>
</p>
</div>
</div>
<!--+
|end content
+-->
<div class="clearboth">&nbsp;</div>
</div>
<div id="footer">
<!--+
|start bottomstrip
+-->
<div class="lastmodified">
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<div class="copyright">
Copyright &copy;
2006 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
<!--+
|end bottomstrip
+-->
</div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-94576-12']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>

View File

@ -1,421 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="lucene">
<title>
Apache Lucene - Basic Demo Sources Walk-through
</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
<link type="text/css" href="skin/profile.css" rel="stylesheet">
<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
<link rel="shortcut icon" href="images/favicon.ico">
</head>
<body onload="init()">
<script type="text/javascript">ndeSetTextSize();</script>
<div id="top">
<!--+
|breadtrail
+-->
<div class="breadtrail">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://lucene.apache.org/">Lucene</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
</div>
<!--+
|header
+-->
<div class="header">
<!--+
|start group logo
+-->
<div class="grouplogo">
<a href="http://lucene.apache.org/"><img class="logoImage" alt="Lucene" src="http://www.apache.org/images/asf_logo_simple.png" title="Apache Lucene"></a>
</div>
<!--+
|end group logo
+-->
<!--+
|start Project Logo
+-->
<div class="projectlogo">
<a href="http://lucene.apache.org/java/"><img class="logoImage" alt="Lucene" src="http://lucene.apache.org/images/lucene_green_300.gif" title="Apache Lucene is a high-performance, full-featured text search engine library written entirely in
Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform."></a>
</div>
<!--+
|end Project Logo
+-->
<!--+
|start Search
+-->
<div class="searchbox">
<form action="http://search.lucidimagination.com/p:lucene" method="get" class="roundtopsmall">
<input onFocus="getBlank (this, 'Search the site with Lucene');" size="25" name="q" id="query" type="text" value="Search the site with Lucene">&nbsp;
<input name="Search" value="Search" type="submit">
</form>
<div style="position: relative; top: -5px; left: -10px">Powered by <a href="http://www.lucidimagination.com" style="color: #033268">Lucid Imagination</a>
</div>
</div>
<!--+
|end search
+-->
<!--+
|start Tabs
+-->
<ul id="tabs">
<li class="current">
<a class="selected" href="http://lucene.apache.org/java/docs/">Main</a>
</li>
<li>
<a class="unselected" href="http://wiki.apache.org/lucene-java">Wiki</a>
</li>
<li class="current">
<a class="selected" href="index.html">Lucene 4.0 Documentation</a>
</li>
</ul>
<!--+
|end Tabs
+-->
</div>
</div>
<div id="main">
<div id="publishedStrip">
<!--+
|start Subtabs
+-->
<div id="level2tabs"></div>
<!--+
|end Endtabs
+-->
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<!--+
|breadtrail
+-->
<div class="breadtrail">
&nbsp;
</div>
<!--+
|start Menu, mainarea
+-->
<!--+
|start Menu
+-->
<div id="menu">
<div onclick="SwitchMenu('menu_1.1', 'skin/')" id="menu_1.1Title" class="menutitle">Documentation</div>
<div id="menu_1.1" class="menuitemgroup">
<div class="menuitem">
<a href="index.html">Overview</a>
</div>
<div class="menuitem">
<a href="changes/Changes.html">Changes</a>
</div>
<div onclick="SwitchMenu('menu_1.1.3', 'skin/')" id="menu_1.1.3Title" class="menutitle">Javadocs</div>
<div id="menu_1.1.3" class="menuitemgroup">
<div class="menuitem">
<a href="api/core/index.html">Core</a>
</div>
<div class="menuitem">
<a href="api/analyzers-common/index.html">Analysis: Common</a>
</div>
<div class="menuitem">
<a href="api/analyzers-kuromoji/index.html">Analysis: Kuromoji (Japanese)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-morfologik/index.html">Analysis: Morfologik (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-phonetic/index.html">Analysis: Phonetic</a>
</div>
<div class="menuitem">
<a href="api/analyzers-smartcn/index.html">Analysis: Smart Chinese</a>
</div>
<div class="menuitem">
<a href="api/analyzers-stempel/index.html">Analysis: Stempel (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-uima/index.html">Analysis: UIMA</a>
</div>
<div class="menuitem">
<a href="api/benchmark/index.html">Benchmark</a>
</div>
<div class="menuitem">
<a href="api/demo/index.html">Demo</a>
</div>
<div class="menuitem">
<a href="api/facet/index.html">Faceting</a>
</div>
<div class="menuitem">
<a href="api/grouping/index.html">Grouping</a>
</div>
<div class="menuitem">
<a href="api/highlighter/index.html">Highlighter</a>
</div>
<div class="menuitem">
<a href="api/join/index.html">Join</a>
</div>
<div class="menuitem">
<a href="api/memory/index.html">Memory</a>
</div>
<div class="menuitem">
<a href="api/misc/index.html">Miscellaneous</a>
</div>
<div class="menuitem">
<a href="api/queries/index.html">Queries</a>
</div>
<div class="menuitem">
<a href="api/queryparser/index.html">Query Parsers</a>
</div>
<div class="menuitem">
<a href="api/sandbox/index.html">Sandbox</a>
</div>
<div class="menuitem">
<a href="api/spatial/index.html">Spatial</a>
</div>
<div class="menuitem">
<a href="api/suggest/index.html">Suggest / Spellcheck</a>
</div>
<div class="menuitem">
<a href="api/test-framework/index.html">Test Framework</a>
</div>
</div>
<div class="menuitem">
<a href="systemrequirements.html">System Requirements</a>
</div>
<div class="menuitem">
<a href="contributions.html">Contributions</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java/LuceneFAQ">FAQ</a>
</div>
<div class="menuitem">
<a href="fileformats.html">File Formats</a>
</div>
<div class="menuitem">
<a href="gettingstarted.html">Getting Started</a>
</div>
<div class="menuitem">
<a href="queryparsersyntax.html">Query Syntax</a>
</div>
<div class="menuitem">
<a href="scoring.html">Scoring</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java">Wiki</a>
</div>
<div class="menuitem">
<a href="http://lucene.apache.org/privacy.html">Privacy Policy</a>
</div>
</div>
<div id="credit"></div>
<div id="roundbottom">
<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
<!--+
|alternative credits
+-->
<div id="credit2"></div>
</div>
<!--+
|end Menu
+-->
<!--+
|start content
+-->
<div id="content">
<h1>
Apache Lucene - Basic Demo Sources Walk-through
</h1>
<div id="minitoc-area">
<ul class="minitoc">
<li>
<a href="#About the Code">About the Code</a>
</li>
<li>
<a href="#Location of the source">Location of the source</a>
</li>
<li>
<a href="#IndexFiles">IndexFiles</a>
</li>
<li>
<a href="#Searching Files">Searching Files</a>
</li>
</ul>
</div>
<a name="N10013"></a><a name="About the Code"></a>
<h2 class="boxed">About the Code</h2>
<div class="section">
<p>
In this section we walk through the sources behind the command-line Lucene demo: where to find them,
their parts and their function. This section is intended for Java developers wishing to understand
how to use Lucene in their applications.
</p>
</div>
<a name="N1001C"></a><a name="Location of the source"></a>
<h2 class="boxed">Location of the source</h2>
<div class="section">
<p>
NOTE: to examine the sources, you need to download and extract a source checkout of
Lucene: (lucene-{version}-src.zip).
</p>
<p>
Relative to the directory created when you extracted Lucene, you
should see a directory called <span class="codefrag">lucene/demo/</span>. This is the root for the Lucene
demo. Under this directory is <span class="codefrag">src/java/org/apache/lucene/demo/</span>. This is where all
the Java sources for the demo live.
</p>
<p>
Within this directory you should see the <span class="codefrag">IndexFiles.java</span> class we executed earlier.
Bring it up in <span class="codefrag">vi</span> or your editor of choice and let's take a look at it.
</p>
</div>
<a name="N10037"></a><a name="IndexFiles"></a>
<h2 class="boxed">IndexFiles</h2>
<div class="section">
<p>
As we discussed in the previous walk-through, the <a href="api/demo/org/apache/lucene/demo/IndexFiles.html">IndexFiles</a> class creates a Lucene
Index. Let's take a look at how it does this.
</p>
<p>
The <span class="codefrag">main()</span> method parses the command-line parameters, then in preparation for
instantiating <a href="api/core/org/apache/lucene/index/IndexWriter.html">IndexWriter</a>, opens a
<a href="api/core/org/apache/lucene/store/Directory.html">Directory</a> and instantiates
<a href="api/analyzers-common/org/apache/lucene/analysis/standard/StandardAnalyzer.html">StandardAnalyzer</a> and
<a href="api/core/org/apache/lucene/index/IndexWriterConfig.html">IndexWriterConfig</a>.
</p>
<p>
The value of the <span class="codefrag">-index</span> command-line parameter is the name of the filesystem directory
where all index information should be stored. If <span class="codefrag">IndexFiles</span> is invoked with a
relative path given in the <span class="codefrag">-index</span> command-line parameter, or if the <span class="codefrag">-index</span>
command-line parameter is not given, causing the default relative index path "<span class="codefrag">index</span>"
to be used, the index path will be created as a subdirectory of the current working directory
(if it does not already exist). On some platforms, the index path may be created in a different
directory (such as the user's home directory).
</p>
<p>
The <span class="codefrag">-docs</span> command-line parameter value is the location of the directory containing
files to be indexed.
</p>
<p>
The <span class="codefrag">-update</span> command-line parameter tells <span class="codefrag">IndexFiles</span> not to delete the
index if it already exists. When <span class="codefrag">-update</span> is not given, <span class="codefrag">IndexFiles</span> will
first wipe the slate clean before indexing any documents.
</p>
<p>
Lucene <a href="api/core/org/apache/lucene/store/Directory.html">Directory</a>s are used by the
<span class="codefrag">IndexWriter</span> to store information in the index. In addition to the
<a href="api/core/org/apache/lucene/store/FSDirectory.html">FSDirectory</a> implementation we are using,
there are several other <span class="codefrag">Directory</span> subclasses that can write to RAM, to databases, etc.
</p>
<p>
Lucene <a href="api/core/org/apache/lucene/analysis/Analyzer.html">Analyzer</a>s are processing pipelines
that break up text into indexed tokens, a.k.a. terms, and optionally perform other operations on these
tokens, e.g. downcasing, synonym insertion, filtering out unwanted tokens, etc. The <span class="codefrag">Analyzer</span>
we are using is <span class="codefrag">StandardAnalyzer</span>, which creates tokens using the Word Break rules from the
Unicode Text Segmentation algorithm specified in <a href="http://unicode.org/reports/tr29/">Unicode
Standard Annex #29</a>; converts tokens to lowercase; and then filters out stopwords. Stopwords are
common language words such as articles (a, an, the, etc.) and other tokens that may have less value for
searching. It should be noted that there are different rules for every language, and you should use the
proper analyzer for each. Lucene currently provides Analyzers for a number of different languages (see
the javadocs under
<a href="api/analyzers-common/org/apache/lucene/analysis/">lucene/analysis/common/src/java/org/apache/lucene/analysis</a>).
</p>
<p>
The <span class="codefrag">IndexWriterConfig</span> instance holds all configuration for <span class="codefrag">IndexWriter</span>. For
example, we set the <span class="codefrag">OpenMode</span> to use here based on the value of the <span class="codefrag">-update</span>
command-line parameter.
</p>
<p>
Looking further down in the file, after <span class="codefrag">IndexWriter</span> is instantiated, you should see the
<span class="codefrag">indexDocs()</span> code. This recursive function crawls the directories and creates
<a href="api/core/org/apache/lucene/document/Document.html">Document</a> objects. The
<span class="codefrag">Document</span> is simply a data object to represent the text content from the file as well as
its creation time and location. These instances are added to the <span class="codefrag">IndexWriter</span>. If
the <span class="codefrag">-update</span> command-line parameter is given, the <span class="codefrag">IndexWriter</span>
<span class="codefrag">OpenMode</span> will be set to <span class="codefrag">OpenMode.CREATE_OR_APPEND</span>, and rather than
adding documents to the index, the <span class="codefrag">IndexWriter</span> will <strong>update</strong> them
in the index by attempting to find an already-indexed document with the same identifier (in our
case, the file path serves as the identifier); deleting it from the index if it exists; and then
adding the new document to the index.
</p>
</div>
<a name="N100DB"></a><a name="Searching Files"></a>
<h2 class="boxed">Searching Files</h2>
<div class="section">
<p>
The <a href="api/demo/org/apache/lucene/demo/SearchFiles.html">SearchFiles</a> class is
quite simple. It primarily collaborates with an
<a href="api/core/org/apache/lucene/search/IndexSearcher.html">IndexSearcher</a>,
<a href="api/analyzers-common/org/apache/lucene/analysis/standard/StandardAnalyzer.html">StandardAnalyzer</a> (which is used in the
<a href="api/demo/org/apache/lucene/demo/IndexFiles.html">IndexFiles</a> class as well)
and a <a href="api/core/org/apache/lucene/queryParser/QueryParser.html">QueryParser</a>. The
query parser is constructed with an analyzer used to interpret your query text in the same way the
documents are interpreted: finding word boundaries, downcasing, and removing useless words like
'a', 'an' and 'the'. The <a href="api/core/org/apache/lucene/search/Query.html">Query</a>
object contains the results from the
<a href="api/core/org/apache/lucene/queryParser/QueryParser.html">QueryParser</a> which is passed
to the searcher. Note that it's also possible to programmatically construct a rich
<a href="api/core/org/apache/lucene/search/Query.html">Query</a> object without using the query
parser. The query parser just enables decoding the <a href="queryparsersyntax.html">Lucene query
syntax</a> into the corresponding <a href="api/core/org/apache/lucene/search/Query.html">Query</a>
object.
</p>
<p>
<span class="codefrag">SearchFiles</span> uses the <span class="codefrag">IndexSearcher.search(query,n)</span> method that returns
<a href="api/core/org/apache/lucene/search/TopDocs.html">TopDocs</a> with max <span class="codefrag">n</span> hits.
The results are printed in pages, sorted by score (i.e. relevance).
</p>
</div>
</div>
<!--+
|end content
+-->
<div class="clearboth">&nbsp;</div>
</div>
<div id="footer">
<!--+
|start bottomstrip
+-->
<div class="lastmodified">
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<div class="copyright">
Copyright &copy;
2006 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
<!--+
|end bottomstrip
+-->
</div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-94576-12']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -1,310 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="lucene">
<title>
Apache Lucene - Getting Started Guide
</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
<link type="text/css" href="skin/profile.css" rel="stylesheet">
<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
<link rel="shortcut icon" href="images/favicon.ico">
</head>
<body onload="init()">
<script type="text/javascript">ndeSetTextSize();</script>
<div id="top">
<!--+
|breadtrail
+-->
<div class="breadtrail">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://lucene.apache.org/">Lucene</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
</div>
<!--+
|header
+-->
<div class="header">
<!--+
|start group logo
+-->
<div class="grouplogo">
<a href="http://lucene.apache.org/"><img class="logoImage" alt="Lucene" src="http://www.apache.org/images/asf_logo_simple.png" title="Apache Lucene"></a>
</div>
<!--+
|end group logo
+-->
<!--+
|start Project Logo
+-->
<div class="projectlogo">
<a href="http://lucene.apache.org/java/"><img class="logoImage" alt="Lucene" src="http://lucene.apache.org/images/lucene_green_300.gif" title="Apache Lucene is a high-performance, full-featured text search engine library written entirely in
Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform."></a>
</div>
<!--+
|end Project Logo
+-->
<!--+
|start Search
+-->
<div class="searchbox">
<form action="http://search.lucidimagination.com/p:lucene" method="get" class="roundtopsmall">
<input onFocus="getBlank (this, 'Search the site with Lucene');" size="25" name="q" id="query" type="text" value="Search the site with Lucene">&nbsp;
<input name="Search" value="Search" type="submit">
</form>
<div style="position: relative; top: -5px; left: -10px">Powered by <a href="http://www.lucidimagination.com" style="color: #033268">Lucid Imagination</a>
</div>
</div>
<!--+
|end search
+-->
<!--+
|start Tabs
+-->
<ul id="tabs">
<li class="current">
<a class="selected" href="http://lucene.apache.org/java/docs/">Main</a>
</li>
<li>
<a class="unselected" href="http://wiki.apache.org/lucene-java">Wiki</a>
</li>
<li class="current">
<a class="selected" href="index.html">Lucene 4.0 Documentation</a>
</li>
</ul>
<!--+
|end Tabs
+-->
</div>
</div>
<div id="main">
<div id="publishedStrip">
<!--+
|start Subtabs
+-->
<div id="level2tabs"></div>
<!--+
|end Endtabs
+-->
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<!--+
|breadtrail
+-->
<div class="breadtrail">
&nbsp;
</div>
<!--+
|start Menu, mainarea
+-->
<!--+
|start Menu
+-->
<div id="menu">
<div onclick="SwitchMenu('menu_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Documentation</div>
<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
<div class="menuitem">
<a href="index.html">Overview</a>
</div>
<div class="menuitem">
<a href="changes/Changes.html">Changes</a>
</div>
<div onclick="SwitchMenu('menu_1.1.3', 'skin/')" id="menu_1.1.3Title" class="menutitle">Javadocs</div>
<div id="menu_1.1.3" class="menuitemgroup">
<div class="menuitem">
<a href="api/core/index.html">Core</a>
</div>
<div class="menuitem">
<a href="api/analyzers-common/index.html">Analysis: Common</a>
</div>
<div class="menuitem">
<a href="api/analyzers-kuromoji/index.html">Analysis: Kuromoji (Japanese)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-morfologik/index.html">Analysis: Morfologik (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-phonetic/index.html">Analysis: Phonetic</a>
</div>
<div class="menuitem">
<a href="api/analyzers-smartcn/index.html">Analysis: Smart Chinese</a>
</div>
<div class="menuitem">
<a href="api/analyzers-stempel/index.html">Analysis: Stempel (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-uima/index.html">Analysis: UIMA</a>
</div>
<div class="menuitem">
<a href="api/benchmark/index.html">Benchmark</a>
</div>
<div class="menuitem">
<a href="api/demo/index.html">Demo</a>
</div>
<div class="menuitem">
<a href="api/facet/index.html">Faceting</a>
</div>
<div class="menuitem">
<a href="api/grouping/index.html">Grouping</a>
</div>
<div class="menuitem">
<a href="api/highlighter/index.html">Highlighter</a>
</div>
<div class="menuitem">
<a href="api/join/index.html">Join</a>
</div>
<div class="menuitem">
<a href="api/memory/index.html">Memory</a>
</div>
<div class="menuitem">
<a href="api/misc/index.html">Miscellaneous</a>
</div>
<div class="menuitem">
<a href="api/queries/index.html">Queries</a>
</div>
<div class="menuitem">
<a href="api/queryparser/index.html">Query Parsers</a>
</div>
<div class="menuitem">
<a href="api/sandbox/index.html">Sandbox</a>
</div>
<div class="menuitem">
<a href="api/spatial/index.html">Spatial</a>
</div>
<div class="menuitem">
<a href="api/suggest/index.html">Suggest / Spellcheck</a>
</div>
<div class="menuitem">
<a href="api/test-framework/index.html">Test Framework</a>
</div>
</div>
<div class="menuitem">
<a href="systemrequirements.html">System Requirements</a>
</div>
<div class="menuitem">
<a href="contributions.html">Contributions</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java/LuceneFAQ">FAQ</a>
</div>
<div class="menuitem">
<a href="fileformats.html">File Formats</a>
</div>
<div class="menupage">
<div class="menupagetitle">Getting Started</div>
</div>
<div class="menuitem">
<a href="queryparsersyntax.html">Query Syntax</a>
</div>
<div class="menuitem">
<a href="scoring.html">Scoring</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java">Wiki</a>
</div>
<div class="menuitem">
<a href="http://lucene.apache.org/privacy.html">Privacy Policy</a>
</div>
</div>
<div id="credit"></div>
<div id="roundbottom">
<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
<!--+
|alternative credits
+-->
<div id="credit2"></div>
</div>
<!--+
|end Menu
+-->
<!--+
|start content
+-->
<div id="content">
<h1>
Apache Lucene - Getting Started Guide
</h1>
<div id="minitoc-area">
<ul class="minitoc">
<li>
<a href="#Getting Started">Getting Started</a>
</li>
</ul>
</div>
<a name="N10013"></a><a name="Getting Started"></a>
<h2 class="boxed">Getting Started</h2>
<div class="section">
<p>
This document is intended as a "getting started" guide. It has three audiences: first-time users
looking to install Apache Lucene in their application; developers looking to modify or base
the applications they develop on Lucene; and developers looking to become involved in and contribute
to the development of Lucene. This document is written in tutorial and walk-through format. The
goal is to help you "get started". It does not go into great depth on some of the conceptual or
inner details of Lucene.
</p>
<p>
Each section listed below builds on one another. More advanced users
may wish to skip sections.
</p>
<ul>
<li>
<a href="demo.html">About the command-line Lucene demo and its usage</a>. This section
is intended for anyone who wants to use the command-line Lucene demo.</li>
<li>
<a href="demo2.html">About the sources and implementation for the command-line Lucene
demo</a>. This section walks through the implementation details (sources) of the
command-line Lucene demo. This section is intended for developers.</li>
</ul>
</div>
</div>
<!--+
|end content
+-->
<div class="clearboth">&nbsp;</div>
</div>
<div id="footer">
<!--+
|start bottomstrip
+-->
<div class="lastmodified">
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<div class="copyright">
Copyright &copy;
2006 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
<!--+
|end bottomstrip
+-->
</div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-94576-12']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 285 B

View File

@ -1,280 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="lucene">
<title>Lucene Java Documentation</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
<link type="text/css" href="skin/profile.css" rel="stylesheet">
<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
<link rel="shortcut icon" href="images/favicon.ico">
</head>
<body onload="init()">
<script type="text/javascript">ndeSetTextSize();</script>
<div id="top">
<!--+
|breadtrail
+-->
<div class="breadtrail">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://lucene.apache.org/">Lucene</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
</div>
<!--+
|header
+-->
<div class="header">
<!--+
|start group logo
+-->
<div class="grouplogo">
<a href="http://lucene.apache.org/"><img class="logoImage" alt="Lucene" src="http://www.apache.org/images/asf_logo_simple.png" title="Apache Lucene"></a>
</div>
<!--+
|end group logo
+-->
<!--+
|start Project Logo
+-->
<div class="projectlogo">
<a href="http://lucene.apache.org/java/"><img class="logoImage" alt="Lucene" src="http://lucene.apache.org/images/lucene_green_300.gif" title="Apache Lucene is a high-performance, full-featured text search engine library written entirely in
Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform."></a>
</div>
<!--+
|end Project Logo
+-->
<!--+
|start Search
+-->
<div class="searchbox">
<form action="http://search.lucidimagination.com/p:lucene" method="get" class="roundtopsmall">
<input onFocus="getBlank (this, 'Search the site with Lucene');" size="25" name="q" id="query" type="text" value="Search the site with Lucene">&nbsp;
<input name="Search" value="Search" type="submit">
</form>
<div style="position: relative; top: -5px; left: -10px">Powered by <a href="http://www.lucidimagination.com" style="color: #033268">Lucid Imagination</a>
</div>
</div>
<!--+
|end search
+-->
<!--+
|start Tabs
+-->
<ul id="tabs">
<li class="current">
<a class="selected" href="http://lucene.apache.org/java/docs/">Main</a>
</li>
<li>
<a class="unselected" href="http://wiki.apache.org/lucene-java">Wiki</a>
</li>
<li class="current">
<a class="selected" href="index.html">Lucene 4.0 Documentation</a>
</li>
</ul>
<!--+
|end Tabs
+-->
</div>
</div>
<div id="main">
<div id="publishedStrip">
<!--+
|start Subtabs
+-->
<div id="level2tabs"></div>
<!--+
|end Endtabs
+-->
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<!--+
|breadtrail
+-->
<div class="breadtrail">
&nbsp;
</div>
<!--+
|start Menu, mainarea
+-->
<!--+
|start Menu
+-->
<div id="menu">
<div onclick="SwitchMenu('menu_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Documentation</div>
<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
<div class="menupage">
<div class="menupagetitle">Overview</div>
</div>
<div class="menuitem">
<a href="changes/Changes.html">Changes</a>
</div>
<div onclick="SwitchMenu('menu_1.1.3', 'skin/')" id="menu_1.1.3Title" class="menutitle">Javadocs</div>
<div id="menu_1.1.3" class="menuitemgroup">
<div class="menuitem">
<a href="api/core/index.html">Core</a>
</div>
<div class="menuitem">
<a href="api/analyzers-common/index.html">Analysis: Common</a>
</div>
<div class="menuitem">
<a href="api/analyzers-kuromoji/index.html">Analysis: Kuromoji (Japanese)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-morfologik/index.html">Analysis: Morfologik (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-phonetic/index.html">Analysis: Phonetic</a>
</div>
<div class="menuitem">
<a href="api/analyzers-smartcn/index.html">Analysis: Smart Chinese</a>
</div>
<div class="menuitem">
<a href="api/analyzers-stempel/index.html">Analysis: Stempel (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-uima/index.html">Analysis: UIMA</a>
</div>
<div class="menuitem">
<a href="api/benchmark/index.html">Benchmark</a>
</div>
<div class="menuitem">
<a href="api/demo/index.html">Demo</a>
</div>
<div class="menuitem">
<a href="api/facet/index.html">Faceting</a>
</div>
<div class="menuitem">
<a href="api/grouping/index.html">Grouping</a>
</div>
<div class="menuitem">
<a href="api/highlighter/index.html">Highlighter</a>
</div>
<div class="menuitem">
<a href="api/join/index.html">Join</a>
</div>
<div class="menuitem">
<a href="api/memory/index.html">Memory</a>
</div>
<div class="menuitem">
<a href="api/misc/index.html">Miscellaneous</a>
</div>
<div class="menuitem">
<a href="api/queries/index.html">Queries</a>
</div>
<div class="menuitem">
<a href="api/queryparser/index.html">Query Parsers</a>
</div>
<div class="menuitem">
<a href="api/sandbox/index.html">Sandbox</a>
</div>
<div class="menuitem">
<a href="api/spatial/index.html">Spatial</a>
</div>
<div class="menuitem">
<a href="api/suggest/index.html">Suggest / Spellcheck</a>
</div>
<div class="menuitem">
<a href="api/test-framework/index.html">Test Framework</a>
</div>
</div>
<div class="menuitem">
<a href="systemrequirements.html">System Requirements</a>
</div>
<div class="menuitem">
<a href="contributions.html">Contributions</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java/LuceneFAQ">FAQ</a>
</div>
<div class="menuitem">
<a href="fileformats.html">File Formats</a>
</div>
<div class="menuitem">
<a href="gettingstarted.html">Getting Started</a>
</div>
<div class="menuitem">
<a href="queryparsersyntax.html">Query Syntax</a>
</div>
<div class="menuitem">
<a href="scoring.html">Scoring</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java">Wiki</a>
</div>
<div class="menuitem">
<a href="http://lucene.apache.org/privacy.html">Privacy Policy</a>
</div>
</div>
<div id="credit">
<hr>
<a href="http://forrest.apache.org/"><img border="0" title="Built with Apache Forrest" alt="Built with Apache Forrest - logo" src="images/built-with-forrest-button.png" style="width: 88px;height: 31px;"></a>
</div>
<div id="roundbottom">
<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
<!--+
|alternative credits
+-->
<div id="credit2"></div>
</div>
<!--+
|end Menu
+-->
<!--+
|start content
+-->
<div id="content">
<h1>Lucene Java Documentation</h1>
<p>
This is the official documentation for Lucene Java<BR>
Please use the menu on the left to access the Javadocs and different documents.
</p>
<p>
Additional documentation is available in the <a href="http://wiki.apache.org/lucene-java">Wiki</a>.
</p>
</div>
<!--+
|end content
+-->
<div class="clearboth">&nbsp;</div>
</div>
<div id="footer">
<!--+
|start bottomstrip
+-->
<div class="lastmodified">
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<div class="copyright">
Copyright &copy;
2006 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
<div id="logos"></div>
<!--+
|end bottomstrip
+-->
</div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-94576-12']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>

View File

@ -1,501 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="lucene">
<title>Site Linkmap Table of Contents</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
<link type="text/css" href="skin/profile.css" rel="stylesheet">
<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
<link rel="shortcut icon" href="images/favicon.ico">
</head>
<body onload="init()">
<script type="text/javascript">ndeSetTextSize();</script>
<div id="top">
<!--+
|breadtrail
+-->
<div class="breadtrail">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://lucene.apache.org/">Lucene</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
</div>
<!--+
|header
+-->
<div class="header">
<!--+
|start group logo
+-->
<div class="grouplogo">
<a href="http://lucene.apache.org/"><img class="logoImage" alt="Lucene" src="http://www.apache.org/images/asf_logo_simple.png" title="Apache Lucene"></a>
</div>
<!--+
|end group logo
+-->
<!--+
|start Project Logo
+-->
<div class="projectlogo">
<a href="http://lucene.apache.org/java/"><img class="logoImage" alt="Lucene" src="http://lucene.apache.org/images/lucene_green_300.gif" title="Apache Lucene is a high-performance, full-featured text search engine library written entirely in
Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform."></a>
</div>
<!--+
|end Project Logo
+-->
<!--+
|start Search
+-->
<div class="searchbox">
<form action="http://search.lucidimagination.com/p:lucene" method="get" class="roundtopsmall">
<input onFocus="getBlank (this, 'Search the site with Lucene');" size="25" name="q" id="query" type="text" value="Search the site with Lucene">&nbsp;
<input name="Search" value="Search" type="submit">
</form>
<div style="position: relative; top: -5px; left: -10px">Powered by <a href="http://www.lucidimagination.com" style="color: #033268">Lucid Imagination</a>
</div>
</div>
<!--+
|end search
+-->
<!--+
|start Tabs
+-->
<ul id="tabs">
<li class="current">
<a class="selected" href="http://lucene.apache.org/java/docs/">Main</a>
</li>
<li>
<a class="unselected" href="http://wiki.apache.org/lucene-java">Wiki</a>
</li>
<li class="current">
<a class="selected" href="index.html">Lucene 4.0 Documentation</a>
</li>
</ul>
<!--+
|end Tabs
+-->
</div>
</div>
<div id="main">
<div id="publishedStrip">
<!--+
|start Subtabs
+-->
<div id="level2tabs"></div>
<!--+
|end Endtabs
+-->
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<!--+
|breadtrail
+-->
<div class="breadtrail">
&nbsp;
</div>
<!--+
|start Menu, mainarea
+-->
<!--+
|start Menu
+-->
<div id="menu">
<div onclick="SwitchMenu('menu_1.1', 'skin/')" id="menu_1.1Title" class="menutitle">Documentation</div>
<div id="menu_1.1" class="menuitemgroup">
<div class="menuitem">
<a href="index.html">Overview</a>
</div>
<div class="menuitem">
<a href="changes/Changes.html">Changes</a>
</div>
<div onclick="SwitchMenu('menu_1.1.3', 'skin/')" id="menu_1.1.3Title" class="menutitle">Javadocs</div>
<div id="menu_1.1.3" class="menuitemgroup">
<div class="menuitem">
<a href="api/core/index.html">Core</a>
</div>
<div class="menuitem">
<a href="api/analyzers-common/index.html">Analysis: Common</a>
</div>
<div class="menuitem">
<a href="api/analyzers-kuromoji/index.html">Analysis: Kuromoji (Japanese)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-morfologik/index.html">Analysis: Morfologik (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-phonetic/index.html">Analysis: Phonetic</a>
</div>
<div class="menuitem">
<a href="api/analyzers-smartcn/index.html">Analysis: Smart Chinese</a>
</div>
<div class="menuitem">
<a href="api/analyzers-stempel/index.html">Analysis: Stempel (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-uima/index.html">Analysis: UIMA</a>
</div>
<div class="menuitem">
<a href="api/benchmark/index.html">Benchmark</a>
</div>
<div class="menuitem">
<a href="api/demo/index.html">Demo</a>
</div>
<div class="menuitem">
<a href="api/facet/index.html">Faceting</a>
</div>
<div class="menuitem">
<a href="api/grouping/index.html">Grouping</a>
</div>
<div class="menuitem">
<a href="api/highlighter/index.html">Highlighter</a>
</div>
<div class="menuitem">
<a href="api/join/index.html">Join</a>
</div>
<div class="menuitem">
<a href="api/memory/index.html">Memory</a>
</div>
<div class="menuitem">
<a href="api/misc/index.html">Miscellaneous</a>
</div>
<div class="menuitem">
<a href="api/queries/index.html">Queries</a>
</div>
<div class="menuitem">
<a href="api/queryparser/index.html">Query Parsers</a>
</div>
<div class="menuitem">
<a href="api/sandbox/index.html">Sandbox</a>
</div>
<div class="menuitem">
<a href="api/spatial/index.html">Spatial</a>
</div>
<div class="menuitem">
<a href="api/suggest/index.html">Suggest / Spellcheck</a>
</div>
<div class="menuitem">
<a href="api/test-framework/index.html">Test Framework</a>
</div>
</div>
<div class="menuitem">
<a href="systemrequirements.html">System Requirements</a>
</div>
<div class="menuitem">
<a href="contributions.html">Contributions</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java/LuceneFAQ">FAQ</a>
</div>
<div class="menuitem">
<a href="fileformats.html">File Formats</a>
</div>
<div class="menuitem">
<a href="gettingstarted.html">Getting Started</a>
</div>
<div class="menuitem">
<a href="queryparsersyntax.html">Query Syntax</a>
</div>
<div class="menuitem">
<a href="scoring.html">Scoring</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java">Wiki</a>
</div>
<div class="menuitem">
<a href="http://lucene.apache.org/privacy.html">Privacy Policy</a>
</div>
</div>
<div id="credit"></div>
<div id="roundbottom">
<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
<!--+
|alternative credits
+-->
<div id="credit2"></div>
</div>
<!--+
|end Menu
+-->
<!--+
|start content
+-->
<div id="content">
<h1>Site Linkmap Table of Contents</h1>
<p>
This is a map of the complete site and its structure.
</p>
<ul>
<li>
<a>Lucene</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>site</em>
</li>
<ul>
<ul>
<li>
<a>Documentation</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>docs</em>
</li>
<ul>
<ul>
<li>
<a href="index.html">Overview</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>overview</em>
</li>
</ul>
<ul>
<li>
<a href="changes/Changes.html">Changes</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>changes</em>
</li>
</ul>
<ul>
<li>
<a>Javadocs</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc</em>
</li>
<ul>
<ul>
<li>
<a href="api/core/index.html">Core</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-core</em>
</li>
</ul>
<ul>
<li>
<a href="api/analyzers-common/index.html">Analysis: Common</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-analyzers-common</em>
</li>
</ul>
<ul>
<li>
<a href="api/analyzers-kuromoji/index.html">Analysis: Kuromoji (Japanese)</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-analyzers-kuromoji</em>
</li>
</ul>
<ul>
<li>
<a href="api/analyzers-morfologik/index.html">Analysis: Morfologik (Polish)</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-analyzers-morfologik</em>
</li>
</ul>
<ul>
<li>
<a href="api/analyzers-phonetic/index.html">Analysis: Phonetic</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-analyzers-phonetic</em>
</li>
</ul>
<ul>
<li>
<a href="api/analyzers-smartcn/index.html">Analysis: Smart Chinese</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-analyzers-smartcn</em>
</li>
</ul>
<ul>
<li>
<a href="api/analyzers-stempel/index.html">Analysis: Stempel (Polish)</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-analyzers-stempel</em>
</li>
</ul>
<ul>
<li>
<a href="api/analyzers-uima/index.html">Analysis: UIMA</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-analyzers-uima</em>
</li>
</ul>
<ul>
<li>
<a href="api/benchmark/index.html">Benchmark</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-benchmark</em>
</li>
</ul>
<ul>
<li>
<a href="api/demo/index.html">Demo</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-demo</em>
</li>
</ul>
<ul>
<li>
<a href="api/facet/index.html">Faceting</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-facet</em>
</li>
</ul>
<ul>
<li>
<a href="api/grouping/index.html">Grouping</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-grouping</em>
</li>
</ul>
<ul>
<li>
<a href="api/highlighter/index.html">Highlighter</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-highlighter</em>
</li>
</ul>
<ul>
<li>
<a href="api/join/index.html">Join</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-join</em>
</li>
</ul>
<ul>
<li>
<a href="api/memory/index.html">Memory</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-memory</em>
</li>
</ul>
<ul>
<li>
<a href="api/misc/index.html">Miscellaneous</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-misc</em>
</li>
</ul>
<ul>
<li>
<a href="api/queries/index.html">Queries</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-queries</em>
</li>
</ul>
<ul>
<li>
<a href="api/queryparser/index.html">Query Parsers</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-queryparser</em>
</li>
</ul>
<ul>
<li>
<a href="api/sandbox/index.html">Sandbox</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-sandbox</em>
</li>
</ul>
<ul>
<li>
<a href="api/spatial/index.html">Spatial</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-spatial</em>
</li>
</ul>
<ul>
<li>
<a href="api/suggest/index.html">Suggest / Spellcheck</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-suggest</em>
</li>
</ul>
<ul>
<li>
<a href="api/test-framework/index.html">Test Framework</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>javadoc-test-framework</em>
</li>
</ul>
</ul>
</ul>
<ul>
<li>
<a href="systemrequirements.html">System Requirements</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>systemrequirements</em>
</li>
</ul>
<ul>
<li>
<a href="contributions.html">Contributions</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>contributions</em>
</li>
</ul>
<ul>
<li>
<a href="http://wiki.apache.org/lucene-java/LuceneFAQ">FAQ</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>faq</em>
</li>
</ul>
<ul>
<li>
<a href="fileformats.html">File Formats</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>file-formats</em>
</li>
</ul>
<ul>
<li>
<a href="gettingstarted.html">Getting Started</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>tutorial</em>
</li>
</ul>
<ul>
<li>
<a href="queryparsersyntax.html">Query Syntax</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>query-syntax</em>
</li>
</ul>
<ul>
<li>
<a href="scoring.html">Scoring</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>scoring</em>
</li>
</ul>
<ul>
<li>
<a href="http://wiki.apache.org/lucene-java">Wiki</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>wiki</em>
</li>
</ul>
<ul>
<li>
<a href="http://lucene.apache.org/privacy.html">Privacy Policy</a>&nbsp;&nbsp;___________________&nbsp;&nbsp;<em>privacy</em>
</li>
</ul>
</ul>
</ul>
</ul>
</ul>
</div>
<!--+
|end content
+-->
<div class="clearboth">&nbsp;</div>
</div>
<div id="footer">
<!--+
|start bottomstrip
+-->
<div class="lastmodified">
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<div class="copyright">
Copyright &copy;
2006 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
<!--+
|end bottomstrip
+-->
</div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-94576-12']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>

View File

@ -1,420 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="lucene">
<title>
Apache Lucene - Lucene Contrib
</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="../skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="../skin/print.css" rel="stylesheet">
<link type="text/css" href="../skin/profile.css" rel="stylesheet">
<script src="../skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="../skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="../skin/fontsize.js" language="javascript" type="text/javascript"></script>
<link rel="shortcut icon" href="../images/favicon.ico">
</head>
<body onload="init()">
<script type="text/javascript">ndeSetTextSize();</script>
<div id="top">
<!--+
|breadtrail
+-->
<div class="breadtrail">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://lucene.apache.org/">Lucene</a><script src="../skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
</div>
<!--+
|header
+-->
<div class="header">
<!--+
|start group logo
+-->
<div class="grouplogo">
<a href="http://lucene.apache.org/"><img class="logoImage" alt="Lucene" src="http://www.apache.org/images/asf_logo_simple.png" title="Apache Lucene"></a>
</div>
<!--+
|end group logo
+-->
<!--+
|start Project Logo
+-->
<div class="projectlogo">
<a href="http://lucene.apache.org/java/"><img class="logoImage" alt="Lucene" src="http://lucene.apache.org/images/lucene_green_300.gif" title="Apache Lucene is a high-performance, full-featured text search engine library written entirely in
Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform."></a>
</div>
<!--+
|end Project Logo
+-->
<!--+
|start Search
+-->
<div class="searchbox">
<form action="http://search.lucidimagination.com/p:lucene" method="get" class="roundtopsmall">
<input onFocus="getBlank (this, 'Search the site with Lucene');" size="25" name="q" id="query" type="text" value="Search the site with Lucene">&nbsp;
<input name="Search" value="Search" type="submit">
</form>
<div style="position: relative; top: -5px; left: -10px">Powered by <a href="http://www.lucidimagination.com" style="color: #033268">Lucid Imagination</a>
</div>
</div>
<!--+
|end search
+-->
<!--+
|start Tabs
+-->
<ul id="tabs">
<li class="current">
<a class="selected" href="http://lucene.apache.org/java/docs/">Main</a>
</li>
<li>
<a class="unselected" href="http://wiki.apache.org/lucene-java">Wiki</a>
</li>
<li class="current">
<a class="selected" href="../index.html">Lucene 4.0 Documentation</a>
</li>
</ul>
<!--+
|end Tabs
+-->
</div>
</div>
<div id="main">
<div id="publishedStrip">
<!--+
|start Subtabs
+-->
<div id="level2tabs"></div>
<!--+
|end Endtabs
+-->
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<!--+
|breadtrail
+-->
<div class="breadtrail">
&nbsp;
</div>
<!--+
|start Menu, mainarea
+-->
<!--+
|start Menu
+-->
<div id="menu">
<div onclick="SwitchMenu('menu_selected_1.1', '../skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('../skin/images/chapter_open.gif');">Documentation</div>
<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
<div class="menuitem">
<a href="../index.html">Overview</a>
</div>
<div onclick="SwitchMenu('menu_1.1.2', '../skin/')" id="menu_1.1.2Title" class="menutitle">Changes</div>
<div id="menu_1.1.2" class="menuitemgroup">
<div class="menuitem">
<a href="../changes/Changes.html">Core</a>
</div>
<div class="menuitem">
<a href="../changes/Contrib-Changes.html">Contrib</a>
</div>
</div>
<div onclick="SwitchMenu('menu_1.1.3', '../skin/')" id="menu_1.1.3Title" class="menutitle">Javadocs</div>
<div id="menu_1.1.3" class="menuitemgroup">
<div class="menuitem">
<a href="../api/all/index.html">All</a>
</div>
<div class="menuitem">
<a href="../api/core/index.html">Core</a>
</div>
<div class="menuitem">
<a href="../api/test-framework/index.html">Test Framework</a>
</div>
<div onclick="SwitchMenu('menu_1.1.3.4', '../skin/')" id="menu_1.1.3.4Title" class="menutitle">Contrib</div>
<div id="menu_1.1.3.4" class="menuitemgroup">
<div class="menuitem">
<a href="../api/contrib-benchmark/index.html">Benchmark</a>
</div>
<div class="menuitem">
<a href="../api/contrib-demo/index.html">Demo</a>
</div>
<div class="menuitem">
<a href="../api/contrib-highlighter/index.html">Highlighter</a>
</div>
<div class="menuitem">
<a href="../api/contrib-instantiated/index.html">Instantiated</a>
</div>
<div class="menuitem">
<a href="../api/contrib-memory/index.html">Memory</a>
</div>
<div class="menuitem">
<a href="../api/contrib-misc/index.html">Miscellaneous</a>
</div>
<div class="menuitem">
<a href="../api/contrib-queries/index.html">Queries</a>
</div>
<div class="menuitem">
<a href="../api/contrib-queryparser/index.html">Query Parser Framework</a>
</div>
<div class="menuitem">
<a href="../api/contrib-remote/index.html">Remote</a>
</div>
<div class="menuitem">
<a href="../api/contrib-spatial/index.html">Spatial</a>
</div>
<div class="menuitem">
<a href="../api/contrib-spellchecker/index.html">Spellchecker</a>
</div>
<div class="menuitem">
<a href="../api/contrib-xml-query-parser/index.html">XML Query Parser</a>
</div>
</div>
</div>
<div class="menuitem">
<a href="../systemrequirements.html">System Requirements</a>
</div>
<div class="menuitem">
<a href="../contributions.html">Contributions</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java/LuceneFAQ">FAQ</a>
</div>
<div class="menuitem">
<a href="../fileformats.html">File Formats</a>
</div>
<div class="menuitem">
<a href="../gettingstarted.html">Getting Started</a>
</div>
<div class="menupage">
<div class="menupagetitle">Lucene Contrib</div>
</div>
<div class="menuitem">
<a href="../queryparsersyntax.html">Query Syntax</a>
</div>
<div class="menuitem">
<a href="../scoring.html">Scoring</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java">Wiki</a>
</div>
<div class="menuitem">
<a href="http://lucene.apache.org/privacy.html">Privacy Policy</a>
</div>
</div>
<div id="credit">
<hr>
<a href="http://forrest.apache.org/"><img border="0" title="Built with Apache Forrest" alt="Built with Apache Forrest - logo" src="../images/built-with-forrest-button.png" style="width: 88px;height: 31px;"></a>
</div>
<div id="roundbottom">
<img style="display: none" class="corner" height="15" width="15" alt="" src="../skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
<!--+
|alternative credits
+-->
<div id="credit2"></div>
</div>
<!--+
|end Menu
+-->
<!--+
|start content
+-->
<div id="content">
<h1>
Apache Lucene - Lucene Contrib
</h1>
<div id="minitoc-area">
<ul class="minitoc">
<li>
<a href="#Contrib">Lucene Contrib</a>
<ul class="minitoc">
<li>
<a href="#benchmark">benchmark</a>
</li>
<li>
<a href="#demo">demo</a>
</li>
<li>
<a href="#highlighter">highlighter</a>
</li>
<li>
<a href="#instantiated">instantiated</a>
</li>
<li>
<a href="#memory">memory</a>
</li>
<li>
<a href="#misc">misc</a>
</li>
<li>
<a href="#queryparser">queryparser</a>
</li>
<li>
<a href="#queries">queries</a>
</li>
<li>
<a href="#remote">remote</a>
</li>
<li>
<a href="#spatial">spatial</a>
</li>
<li>
<a href="#spellchecker">spellchecker</a>
</li>
<li>
<a href="#xml-query-parser">xml-query-parser</a>
</li>
</ul>
</li>
</ul>
</div>
<a name="N1000C"></a><a name="Contrib"></a>
<h2 class="boxed">Lucene Contrib</h2>
<div class="section">
<p>
The Lucene Java project also contains a workspace, Lucene Contrib
(formerly known as the Lucene Sandbox), that is open both to all Lucene
Java core committers and to developers whose commit rights are
restricted to the Contrib workspace; these developers are referred to
as "Contrib committers". The Lucene Contrib workspace hosts the
following types of packages:
</p>
<ul>
<li>Various third party contributions.</li>
<li>
Contributions with third party dependencies - the Lucene Java core
distribution has no external runtime dependencies.
</li>
<li>
New ideas that are intended for eventual inclusion into the Lucene
Java core.
</li>
</ul>
<p>
Users are free to experiment with the components developed in the
Contrib workspace, but Contrib packages will not necessarily be
maintained, particularly in their current state. The Lucene Java core
backwards compatibility commitments (see
<a href="http://wiki.apache.org/lucene-java/BackwardsCompatibility">http://wiki.apache.org/lucene-java/BackwardsCompatibility</a>)
do not necessarily extend to the packages in the Contrib workspace.
See the README.txt file for each Contrib package for details. If the
README.txt file does not address its backwards compatibility
commitments, users should assume it does not make any compatibility
commitments.
</p>
<p>
See <a href="../changes/Contrib-Changes.html">Contrib CHANGES</a> for changes included in the current release.
</p>
<p>
You can access the current trunk Contrib repository at
<a href="http://svn.apache.org/repos/asf/lucene/dev/trunk/lucene/contrib/">http://svn.apache.org/repos/asf/lucene/dev/trunk/lucene/contrib/</a>.
</p>
<a name="N10035"></a><a name="benchmark"></a>
<h3 class="boxed">benchmark</h3>
<p>The benchmark contribution contains tools for benchmarking Lucene using standard, freely available corpora.</p>
<p>See <a href="../api/contrib-benchmark/index.html">benchmark javadoc</a>
</p>
<a name="N10044"></a><a name="demo"></a>
<h3 class="boxed">demo</h3>
<p>The demo contrib contains the Lucene demo: IndexFiles and SearchFiles, described under
<a href="../gettingstarted.html">Getting Started</a>.</p>
<p>See <a href="../api/contrib-demo/index.html">demo javadoc</a>
</p>
<a name="N10057"></a><a name="highlighter"></a>
<h3 class="boxed">highlighter</h3>
<p>A set of classes for highlighting matching terms in search results.</p>
<p>See <a href="../api/contrib-highlighter/index.html">highlighter javadoc</a>
</p>
<a name="N10066"></a><a name="instantiated"></a>
<h3 class="boxed">instantiated</h3>
<p>RAM-based index that enables much faster searching than RAMDirectory in certain situations.</p>
<p>See <a href="../api/contrib-instantiated/index.html">instantiated javadoc</a>
</p>
<a name="N10075"></a><a name="memory"></a>
<h3 class="boxed">memory</h3>
<p>High-performance single-document main memory index.</p>
<p>See <a href="../api/contrib-memory/index.html">memory javadoc</a>
</p>
<a name="N10084"></a><a name="misc"></a>
<h3 class="boxed">misc</h3>
<p>A variety of miscellaneous files, including QueryParsers, and other alternate Lucene class implementations and tools.</p>
<p>See <a href="../api/contrib-misc/index.html">misc javadoc</a>
</p>
<a name="N10093"></a><a name="queryparser"></a>
<h3 class="boxed">queryparser</h3>
<p>A new Lucene query parser implementation, which matches the syntax of the core QueryParser but offers a more modular architecture to enable customization.</p>
<p>See <a href="../api/contrib-queryparser/index.html">queryparser javadoc</a>
</p>
<a name="N100A2"></a><a name="queries"></a>
<h3 class="boxed">queries</h3>
<p>Additional queries for Lucene.</p>
<p>See <a href="../api/contrib-queries/index.html">queries javadoc</a>
</p>
<a name="N100B1"></a><a name="remote"></a>
<h3 class="boxed">remote</h3>
<p>Classes to help use Lucene with RMI.</p>
<p>See <a href="../api/contrib-remote/index.html">remote javadoc</a>
</p>
<a name="N100C0"></a><a name="spatial"></a>
<h3 class="boxed">spatial</h3>
<p>Classes to help with efficient distance based sorting.</p>
<p>See <a href="../api/contrib-spatial/index.html">spatial javadoc</a>
</p>
<a name="N100CF"></a><a name="spellchecker"></a>
<h3 class="boxed">spellchecker</h3>
<p>Provides tools for spellchecking and suggestions with Lucene.</p>
<p>See <a href="../api/contrib-spellchecker/index.html">spellchecker javadoc</a>
</p>
<a name="N100DE"></a><a name="xml-query-parser"></a>
<h3 class="boxed">xml-query-parser</h3>
<p>A QueryParser that can read queries written in an XML format.</p>
<p>See <a href="../api/contrib-xml-query-parser/index.html">xml-query-parser javadoc</a>
</p>
</div>
</div>
<!--+
|end content
+-->
<div class="clearboth">&nbsp;</div>
</div>
<div id="footer">
<!--+
|start bottomstrip
+-->
<div class="lastmodified">
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<div class="copyright">
Copyright &copy;
2006 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
<div id="logos"></div>
<!--+
|end bottomstrip
+-->
</div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-94576-12']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>

View File

@ -1,536 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="lucene">
<title>
Apache Lucene - Query Parser Syntax
</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
<link type="text/css" href="skin/profile.css" rel="stylesheet">
<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
<link rel="shortcut icon" href="images/favicon.ico">
</head>
<body onload="init()">
<script type="text/javascript">ndeSetTextSize();</script>
<div id="top">
<!--+
|breadtrail
+-->
<div class="breadtrail">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://lucene.apache.org/">Lucene</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
</div>
<!--+
|header
+-->
<div class="header">
<!--+
|start group logo
+-->
<div class="grouplogo">
<a href="http://lucene.apache.org/"><img class="logoImage" alt="Lucene" src="http://www.apache.org/images/asf_logo_simple.png" title="Apache Lucene"></a>
</div>
<!--+
|end group logo
+-->
<!--+
|start Project Logo
+-->
<div class="projectlogo">
<a href="http://lucene.apache.org/java/"><img class="logoImage" alt="Lucene" src="http://lucene.apache.org/images/lucene_green_300.gif" title="Apache Lucene is a high-performance, full-featured text search engine library written entirely in
Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform."></a>
</div>
<!--+
|end Project Logo
+-->
<!--+
|start Search
+-->
<div class="searchbox">
<form action="http://search.lucidimagination.com/p:lucene" method="get" class="roundtopsmall">
<input onFocus="getBlank (this, 'Search the site with Lucene');" size="25" name="q" id="query" type="text" value="Search the site with Lucene">&nbsp;
<input name="Search" value="Search" type="submit">
</form>
<div style="position: relative; top: -5px; left: -10px">Powered by <a href="http://www.lucidimagination.com" style="color: #033268">Lucid Imagination</a>
</div>
</div>
<!--+
|end search
+-->
<!--+
|start Tabs
+-->
<ul id="tabs">
<li class="current">
<a class="selected" href="http://lucene.apache.org/java/docs/">Main</a>
</li>
<li>
<a class="unselected" href="http://wiki.apache.org/lucene-java">Wiki</a>
</li>
<li class="current">
<a class="selected" href="index.html">Lucene 4.0 Documentation</a>
</li>
</ul>
<!--+
|end Tabs
+-->
</div>
</div>
<div id="main">
<div id="publishedStrip">
<!--+
|start Subtabs
+-->
<div id="level2tabs"></div>
<!--+
|end Endtabs
+-->
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<!--+
|breadtrail
+-->
<div class="breadtrail">
&nbsp;
</div>
<!--+
|start Menu, mainarea
+-->
<!--+
|start Menu
+-->
<div id="menu">
<div onclick="SwitchMenu('menu_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Documentation</div>
<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
<div class="menuitem">
<a href="index.html">Overview</a>
</div>
<div class="menuitem">
<a href="changes/Changes.html">Changes</a>
</div>
<div onclick="SwitchMenu('menu_1.1.3', 'skin/')" id="menu_1.1.3Title" class="menutitle">Javadocs</div>
<div id="menu_1.1.3" class="menuitemgroup">
<div class="menuitem">
<a href="api/core/index.html">Core</a>
</div>
<div class="menuitem">
<a href="api/analyzers-common/index.html">Analysis: Common</a>
</div>
<div class="menuitem">
<a href="api/analyzers-kuromoji/index.html">Analysis: Kuromoji (Japanese)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-morfologik/index.html">Analysis: Morfologik (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-phonetic/index.html">Analysis: Phonetic</a>
</div>
<div class="menuitem">
<a href="api/analyzers-smartcn/index.html">Analysis: Smart Chinese</a>
</div>
<div class="menuitem">
<a href="api/analyzers-stempel/index.html">Analysis: Stempel (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-uima/index.html">Analysis: UIMA</a>
</div>
<div class="menuitem">
<a href="api/benchmark/index.html">Benchmark</a>
</div>
<div class="menuitem">
<a href="api/demo/index.html">Demo</a>
</div>
<div class="menuitem">
<a href="api/facet/index.html">Faceting</a>
</div>
<div class="menuitem">
<a href="api/grouping/index.html">Grouping</a>
</div>
<div class="menuitem">
<a href="api/highlighter/index.html">Highlighter</a>
</div>
<div class="menuitem">
<a href="api/join/index.html">Join</a>
</div>
<div class="menuitem">
<a href="api/memory/index.html">Memory</a>
</div>
<div class="menuitem">
<a href="api/misc/index.html">Miscellaneous</a>
</div>
<div class="menuitem">
<a href="api/queries/index.html">Queries</a>
</div>
<div class="menuitem">
<a href="api/queryparser/index.html">Query Parsers</a>
</div>
<div class="menuitem">
<a href="api/sandbox/index.html">Sandbox</a>
</div>
<div class="menuitem">
<a href="api/spatial/index.html">Spatial</a>
</div>
<div class="menuitem">
<a href="api/suggest/index.html">Suggest / Spellcheck</a>
</div>
<div class="menuitem">
<a href="api/test-framework/index.html">Test Framework</a>
</div>
</div>
<div class="menuitem">
<a href="systemrequirements.html">System Requirements</a>
</div>
<div class="menuitem">
<a href="contributions.html">Contributions</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java/LuceneFAQ">FAQ</a>
</div>
<div class="menuitem">
<a href="fileformats.html">File Formats</a>
</div>
<div class="menuitem">
<a href="gettingstarted.html">Getting Started</a>
</div>
<div class="menupage">
<div class="menupagetitle">Query Syntax</div>
</div>
<div class="menuitem">
<a href="scoring.html">Scoring</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java">Wiki</a>
</div>
<div class="menuitem">
<a href="http://lucene.apache.org/privacy.html">Privacy Policy</a>
</div>
</div>
<div id="credit"></div>
<div id="roundbottom">
<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
<!--+
|alternative credits
+-->
<div id="credit2"></div>
</div>
<!--+
|end Menu
+-->
<!--+
|start content
+-->
<div id="content">
<h1>
Apache Lucene - Query Parser Syntax
</h1>
<div id="minitoc-area">
<ul class="minitoc">
<li>
<a href="#Overview">Overview</a>
</li>
<li>
<a href="#Terms">Terms</a>
</li>
<li>
<a href="#Fields">Fields</a>
</li>
<li>
<a href="#Term Modifiers">Term Modifiers</a>
<ul class="minitoc">
<li>
<a href="#Wildcard Searches">Wildcard Searches</a>
</li>
<li>
<a href="#Fuzzy Searches">Fuzzy Searches</a>
</li>
<li>
<a href="#Proximity Searches">Proximity Searches</a>
</li>
<li>
<a href="#Range Searches">Range Searches</a>
</li>
<li>
<a href="#Boosting a Term">Boosting a Term</a>
</li>
</ul>
</li>
<li>
<a href="#Boolean operators">Boolean Operators</a>
<ul class="minitoc">
<li>
<a href="#OR"></a>
</li>
<li>
<a href="#AND">AND</a>
</li>
<li>
<a href="#+">+</a>
</li>
<li>
<a href="#NOT">NOT</a>
</li>
<li>
<a href="#-">-</a>
</li>
</ul>
</li>
<li>
<a href="#Grouping">Grouping</a>
</li>
<li>
<a href="#Field Grouping">Field Grouping</a>
</li>
<li>
<a href="#Escaping Special Characters">Escaping Special Characters</a>
</li>
</ul>
</div>
<a name="N10013"></a><a name="Overview"></a>
<h2 class="boxed">Overview</h2>
<div class="section">
<p>Although Lucene provides the ability to create your own
queries through its API, it also provides a rich query
language through the Query Parser, a lexer which
interprets a string into a Lucene Query using JavaCC.
</p>
<p>Generally, the query parser syntax may change from
release to release. This page describes the syntax as of
the current release. If you are using a different
version of Lucene, please consult the copy of
<span class="codefrag">docs/queryparsersyntax.html</span> that was distributed
with the version you are using.
</p>
<p>
Before choosing to use the provided Query Parser, please consider the following:
<ol>
<li>If you are programmatically generating a query string and then
parsing it with the query parser then you should seriously consider building
your queries directly with the query API. In other words, the query
parser is designed for human-entered text, not for program-generated
text.</li>
<li>Untokenized fields are best added directly to queries, and not
through the query parser. If a field's values are generated programmatically
by the application, then so should query clauses for this field.
An analyzer, which the query parser uses, is designed to convert human-entered
text to terms. Program-generated values, like dates, keywords, etc.,
should be consistently program-generated.</li>
<li>In a query form, fields which are general text should use the query
parser. All others, such as date ranges, keywords, etc. are better added
directly through the query API. A field with a limit set of values,
that can be specified with a pull-down menu should not be added to a
query string which is subsequently parsed, but rather added as a
TermQuery clause.</li>
</ol>
</p>
</div>
<a name="N10032"></a><a name="Terms"></a>
<h2 class="boxed">Terms</h2>
<div class="section">
<p>A query is broken up into terms and operators. There are two types of terms: Single Terms and Phrases.</p>
<p>A Single Term is a single word such as "test" or "hello".</p>
<p>A Phrase is a group of words surrounded by double quotes such as "hello dolly".</p>
<p>Multiple terms can be combined together with Boolean operators to form a more complex query (see below).</p>
<p>Note: The analyzer used to create the index will be used on the terms and phrases in the query string.
So it is important to choose an analyzer that will not interfere with the terms used in the query string.</p>
</div>
<a name="N10048"></a><a name="Fields"></a>
<h2 class="boxed">Fields</h2>
<div class="section">
<p>Lucene supports fielded data. When performing a search you can either specify a field, or use the default field. The field names and default field is implementation specific.</p>
<p>You can search any field by typing the field name followed by a colon ":" and then the term you are looking for. </p>
<p>As an example, let's assume a Lucene index contains two fields, title and text and text is the default field.
If you want to find the document entitled "The Right Way" which contains the text "don't go this way", you can enter: </p>
<pre class="code">title:"The Right Way" AND text:go</pre>
<p>or</p>
<pre class="code">title:"Do it right" AND right</pre>
<p>Since text is the default field, the field indicator is not required.</p>
<p>Note: The field is only valid for the term that it directly precedes, so the query</p>
<pre class="code">title:Do it right</pre>
<p>Will only find "Do" in the title field. It will find "it" and "right" in the default field (in this case the text field). </p>
</div>
<a name="N1006D"></a><a name="Term Modifiers"></a>
<h2 class="boxed">Term Modifiers</h2>
<div class="section">
<p>Lucene supports modifying query terms to provide a wide range of searching options.</p>
<a name="N10076"></a><a name="Wildcard Searches"></a>
<h3 class="boxed">Wildcard Searches</h3>
<p>Lucene supports single and multiple character wildcard searches within single terms
(not within phrase queries).</p>
<p>To perform a single character wildcard search use the "?" symbol.</p>
<p>To perform a multiple character wildcard search use the "*" symbol.</p>
<p>The single character wildcard search looks for terms that match that with the single character replaced. For example, to search for "text" or "test" you can use the search:</p>
<pre class="code">te?t</pre>
<p>Multiple character wildcard searches looks for 0 or more characters. For example, to search for test, tests or tester, you can use the search: </p>
<pre class="code">test*</pre>
<p>You can also use the wildcard searches in the middle of a term.</p>
<pre class="code">te*t</pre>
<p>Note: You cannot use a * or ? symbol as the first character of a search.</p>
<a name="N1009B"></a><a name="Fuzzy Searches"></a>
<h3 class="boxed">Fuzzy Searches</h3>
<p>Lucene supports fuzzy searches based on the Levenshtein Distance, or Edit Distance algorithm. To do a fuzzy search use the tilde, "~", symbol at the end of a Single word Term. For example to search for a term similar in spelling to "roam" use the fuzzy search: </p>
<pre class="code">roam~</pre>
<p>This search will find terms like foam and roams.</p>
<p>Starting with Lucene 1.9 an additional (optional) parameter can specify the required similarity. The value is between 0 and 1, with a value closer to 1 only terms with a higher similarity will be matched. For example:</p>
<pre class="code">roam~0.8</pre>
<p>The default that is used if the parameter is not given is 0.5.</p>
<a name="N100B4"></a><a name="Proximity Searches"></a>
<h3 class="boxed">Proximity Searches</h3>
<p>Lucene supports finding words are a within a specific distance away. To do a proximity search use the tilde, "~", symbol at the end of a Phrase. For example to search for a "apache" and "jakarta" within 10 words of each other in a document use the search: </p>
<pre class="code">"jakarta apache"~10</pre>
<a name="N100C1"></a><a name="Range Searches"></a>
<h3 class="boxed">Range Searches</h3>
<p>Range Queries allow one to match documents whose field(s) values
are between the lower and upper bound specified by the Range Query.
Range Queries can be inclusive or exclusive of the upper and lower bounds.
Sorting is done lexicographically.</p>
<pre class="code">mod_date:[20020101 TO 20030101]</pre>
<p>This will find documents whose mod_date fields have values between 20020101 and 20030101, inclusive.
Note that Range Queries are not reserved for date fields. You could also use range queries with non-date fields:</p>
<pre class="code">title:{Aida TO Carmen}</pre>
<p>This will find all documents whose titles are between Aida and Carmen, but not including Aida and Carmen.</p>
<p>Inclusive range queries are denoted by square brackets. Exclusive range queries are denoted by
curly brackets.</p>
<a name="N100DA"></a><a name="Boosting a Term"></a>
<h3 class="boxed">Boosting a Term</h3>
<p>Lucene provides the relevance level of matching documents based on the terms found. To boost a term use the caret, "^", symbol with a boost factor (a number) at the end of the term you are searching. The higher the boost factor, the more relevant the term will be.</p>
<p>Boosting allows you to control the relevance of a document by boosting its term. For example, if you are searching for</p>
<pre class="code">jakarta apache</pre>
<p>and you want the term "jakarta" to be more relevant boost it using the ^ symbol along with the boost factor next to the term.
You would type:</p>
<pre class="code">jakarta^4 apache</pre>
<p>This will make documents with the term jakarta appear more relevant. You can also boost Phrase Terms as in the example: </p>
<pre class="code">"jakarta apache"^4 "Apache Lucene"</pre>
<p>By default, the boost factor is 1. Although the boost factor must be positive, it can be less than 1 (e.g. 0.2)</p>
</div>
<a name="N100FA"></a><a name="Boolean operators"></a>
<h2 class="boxed">Boolean Operators</h2>
<div class="section">
<p>Boolean operators allow terms to be combined through logic operators.
Lucene supports AND, "+", OR, NOT and "-" as Boolean operators(Note: Boolean operators must be ALL CAPS).</p>
<a name="N10103"></a><a name="OR"></a>
<h3 class="boxed"></h3>
<p>The OR operator is the default conjunction operator. This means that if there is no Boolean operator between two terms, the OR operator is used.
The OR operator links two terms and finds a matching document if either of the terms exist in a document. This is equivalent to a union using sets.
The symbol || can be used in place of the word OR.</p>
<p>To search for documents that contain either "jakarta apache" or just "jakarta" use the query:</p>
<pre class="code">"jakarta apache" jakarta</pre>
<p>or</p>
<pre class="code">"jakarta apache" OR jakarta</pre>
<a name="N10116"></a><a name="AND"></a>
<h3 class="boxed">AND</h3>
<p>The AND operator matches documents where both terms exist anywhere in the text of a single document.
This is equivalent to an intersection using sets. The symbol &amp;&amp; can be used in place of the word AND.</p>
<p>To search for documents that contain "jakarta apache" and "Apache Lucene" use the query: </p>
<pre class="code">"jakarta apache" AND "Apache Lucene"</pre>
<a name="N10126"></a><a name="+"></a>
<h3 class="boxed">+</h3>
<p>The "+" or required operator requires that the term after the "+" symbol exist somewhere in a the field of a single document.</p>
<p>To search for documents that must contain "jakarta" and may contain "lucene" use the query:</p>
<pre class="code">+jakarta lucene</pre>
<a name="N10136"></a><a name="NOT"></a>
<h3 class="boxed">NOT</h3>
<p>The NOT operator excludes documents that contain the term after NOT.
This is equivalent to a difference using sets. The symbol ! can be used in place of the word NOT.</p>
<p>To search for documents that contain "jakarta apache" but not "Apache Lucene" use the query: </p>
<pre class="code">"jakarta apache" NOT "Apache Lucene"</pre>
<p>Note: The NOT operator cannot be used with just one term. For example, the following search will return no results:</p>
<pre class="code">NOT "jakarta apache"</pre>
<a name="N1014C"></a><a name="-"></a>
<h3 class="boxed">-</h3>
<p>The "-" or prohibit operator excludes documents that contain the term after the "-" symbol.</p>
<p>To search for documents that contain "jakarta apache" but not "Apache Lucene" use the query: </p>
<pre class="code">"jakarta apache" -"Apache Lucene"</pre>
</div>
<a name="N1015D"></a><a name="Grouping"></a>
<h2 class="boxed">Grouping</h2>
<div class="section">
<p>Lucene supports using parentheses to group clauses to form sub queries. This can be very useful if you want to control the boolean logic for a query.</p>
<p>To search for either "jakarta" or "apache" and "website" use the query:</p>
<pre class="code">(jakarta OR apache) AND website</pre>
<p>This eliminates any confusion and makes sure you that website must exist and either term jakarta or apache may exist.</p>
</div>
<a name="N10170"></a><a name="Field Grouping"></a>
<h2 class="boxed">Field Grouping</h2>
<div class="section">
<p>Lucene supports using parentheses to group multiple clauses to a single field.</p>
<p>To search for a title that contains both the word "return" and the phrase "pink panther" use the query:</p>
<pre class="code">title:(+return +"pink panther")</pre>
</div>
<a name="N10180"></a><a name="Escaping Special Characters"></a>
<h2 class="boxed">Escaping Special Characters</h2>
<div class="section">
<p>Lucene supports escaping special characters that are part of the query syntax. The current list special characters are</p>
<p>+ - &amp;&amp; || ! ( ) { } [ ] ^ " ~ * ? : \</p>
<p>To escape these character use the \ before the character. For example to search for (1+1):2 use the query:</p>
<pre class="code">\(1\+1\)\:2</pre>
</div>
</div>
<!--+
|end content
+-->
<div class="clearboth">&nbsp;</div>
</div>
<div id="footer">
<!--+
|start bottomstrip
+-->
<div class="lastmodified">
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<div class="copyright">
Copyright &copy;
2006 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
<!--+
|end bottomstrip
+-->
</div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-94576-12']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>

View File

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<catalogue>
<message key="Font size:">Schriftgrösse:</message>
<message key="Last Published:">Zuletzt veröffentlicht:</message>
<message key="Search">Suche:</message>
<message key="Search the site with">Suche auf der Seite mit</message>
</catalogue>

View File

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<catalogue>
<message key="Font size:">Font size:</message>
<message key="Last Published:">Last Published:</message>
<message key="Search">Search</message>
<message key="Search the site with">Search site with</message>
</catalogue>

View File

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<catalogue>
<message key="Font size:">Tamaño del texto:</message>
<message key="Last Published:">Fecha de publicación:</message>
<message key="Search">Buscar</message>
<message key="Search the site with">Buscar en</message>
</catalogue>

View File

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<catalogue>
<message key="Font size:">Taille :</message>
<message key="Last Published:">Dernière publication :</message>
<message key="Search">Rechercher</message>
<message key="Search the site with">Rechercher sur le site avec</message>
</catalogue>

View File

@ -1,166 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* General
*/
img { border: 0; }
#content table {
border: 0;
width: 100%;
}
/*Hack to get IE to render the table at 100%*/
* html #content table { margin-left: -3px; }
#content th,
#content td {
margin: 0;
padding: 0;
vertical-align: top;
}
.clearboth {
clear: both;
}
.note, .warning, .fixme {
border: solid black 1px;
margin: 1em 3em;
}
.note .label {
background: #369;
color: white;
font-weight: bold;
padding: 5px 10px;
}
.note .content {
background: #F0F0FF;
color: black;
line-height: 120%;
font-size: 90%;
padding: 5px 10px;
}
.warning .label {
background: #C00;
color: white;
font-weight: bold;
padding: 5px 10px;
}
.warning .content {
background: #FFF0F0;
color: black;
line-height: 120%;
font-size: 90%;
padding: 5px 10px;
}
.fixme .label {
background: #C6C600;
color: black;
font-weight: bold;
padding: 5px 10px;
}
.fixme .content {
padding: 5px 10px;
}
/**
* Typography
*/
body {
font-family: verdana, "Trebuchet MS", arial, helvetica, sans-serif;
font-size: 100%;
}
#content {
font-family: Georgia, Palatino, Times, serif;
font-size: 95%;
}
#tabs {
font-size: 70%;
}
#menu {
font-size: 80%;
}
#footer {
font-size: 70%;
}
h1, h2, h3, h4, h5, h6 {
font-family: "Trebuchet MS", verdana, arial, helvetica, sans-serif;
font-weight: bold;
margin-top: 1em;
margin-bottom: .5em;
}
h1 {
margin-top: 0;
margin-bottom: 1em;
font-size: 1.4em;
}
#content h1 {
font-size: 160%;
margin-bottom: .5em;
}
#menu h1 {
margin: 0;
padding: 10px;
background: #336699;
color: white;
}
h2 { font-size: 120%; }
h3 { font-size: 100%; }
h4 { font-size: 90%; }
h5 { font-size: 80%; }
h6 { font-size: 75%; }
p {
line-height: 120%;
text-align: left;
margin-top: .5em;
margin-bottom: 1em;
}
#content li,
#content th,
#content td,
#content li ul,
#content li ol{
margin-top: .5em;
margin-bottom: .5em;
}
#content li li,
#minitoc-area li{
margin-top: 0em;
margin-bottom: 0em;
}
#content .attribution {
text-align: right;
font-style: italic;
font-size: 85%;
margin-top: 1em;
}
.codefrag {
font-family: "Courier New", Courier, monospace;
font-size: 110%;
}

View File

@ -1,90 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var PREPREND_CRUMBS=new Array();
var link1="@skinconfig.trail.link1.name@";
var link2="@skinconfig.trail.link2.name@";
var link3="@skinconfig.trail.link3.name@";
if(!(link1=="")&&!link1.indexOf( "@" ) == 0){
PREPREND_CRUMBS.push( new Array( link1, @skinconfig.trail.link1.href@ ) ); }
if(!(link2=="")&&!link2.indexOf( "@" ) == 0){
PREPREND_CRUMBS.push( new Array( link2, @skinconfig.trail.link2.href@ ) ); }
if(!(link3=="")&&!link3.indexOf( "@" ) == 0){
PREPREND_CRUMBS.push( new Array( link3, @skinconfig.trail.link3.href@ ) ); }
var DISPLAY_SEPARATOR=" &gt; ";
var DISPLAY_PREPREND=" &gt; ";
var DISPLAY_POSTPREND=":";
var CSS_CLASS_CRUMB="breadcrumb";
var CSS_CLASS_TRAIL="breadcrumbTrail";
var CSS_CLASS_SEPARATOR="crumbSeparator";
var FILE_EXTENSIONS=new Array( ".html", ".htm", ".jsp", ".php", ".php3", ".php4" );
var PATH_SEPARATOR="/";
function sc(s) {
var l=s.toLowerCase();
return l.substr(0,1).toUpperCase()+l.substr(1);
}
function getdirs() {
var t=document.location.pathname.split(PATH_SEPARATOR);
var lc=t[t.length-1];
for(var i=0;i < FILE_EXTENSIONS.length;i++)
{
if(lc.indexOf(FILE_EXTENSIONS[i]))
return t.slice(1,t.length-1); }
return t.slice(1,t.length);
}
function getcrumbs( d )
{
var pre = "/";
var post = "/";
var c = new Array();
if( d != null )
{
for(var i=0;i < d.length;i++) {
pre+=d[i]+postfix;
c.push(new Array(d[i],pre)); }
}
if(PREPREND_CRUMBS.length > 0 )
return PREPREND_CRUMBS.concat( c );
return c;
}
function gettrail( c )
{
var h=DISPLAY_PREPREND;
for(var i=0;i < c.length;i++)
{
h+='<a href="'+c[i][1]+'" >'+sc(c[i][0])+'</a>';
if(i!=(c.length-1))
h+=DISPLAY_SEPARATOR; }
return h+DISPLAY_POSTPREND;
}
function gettrailXHTML( c )
{
var h='<span class="'+CSS_CLASS_TRAIL+'">'+DISPLAY_PREPREND;
for(var i=0;i < c.length;i++)
{
h+='<a href="'+c[i][1]+'" class="'+CSS_CLASS_CRUMB+'">'+sc(c[i][0])+'</a>';
if(i!=(c.length-1))
h+='<span class="'+CSS_CLASS_SEPARATOR+'">'+DISPLAY_SEPARATOR+'</span>'; }
return h+DISPLAY_POSTPREND+'</span>';
}
if(document.location.href.toLowerCase().indexOf("http://")==-1)
document.write(gettrail(getcrumbs()));
else
document.write(gettrail(getcrumbs(getdirs())));

View File

@ -1,237 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* This script, when included in a html file, builds a neat breadcrumb trail
* based on its url. That is, if it doesn't contains bugs (I'm relatively
* sure it does).
*
* Typical usage:
* <script type="text/javascript" language="JavaScript" src="breadcrumbs.js"></script>
*/
/**
* IE 5 on Mac doesn't know Array.push.
*
* Implement it - courtesy to fritz.
*/
var abc = new Array();
if (!abc.push) {
Array.prototype.push = function(what){this[this.length]=what}
}
/* ========================================================================
CONSTANTS
======================================================================== */
/**
* Two-dimensional array containing extra crumbs to place at the front of
* the trail. Specify first the name of the crumb, then the URI that belongs
* to it. You'll need to modify this for every domain or subdomain where
* you use this script (you can leave it as an empty array if you wish)
*/
var PREPREND_CRUMBS = new Array();
var link1 = "@skinconfig.trail.link1.name@";
var link2 = "@skinconfig.trail.link2.name@";
var link3 = "@skinconfig.trail.link3.name@";
var href1 = "@skinconfig.trail.link1.href@";
var href2 = "@skinconfig.trail.link2.href@";
var href3 = "@skinconfig.trail.link3.href@";
if(!(link1=="")&&!link1.indexOf( "@" ) == 0){
PREPREND_CRUMBS.push( new Array( link1, href1 ) );
}
if(!(link2=="")&&!link2.indexOf( "@" ) == 0){
PREPREND_CRUMBS.push( new Array( link2, href2 ) );
}
if(!(link3=="")&&!link3.indexOf( "@" ) == 0){
PREPREND_CRUMBS.push( new Array( link3, href3 ) );
}
/**
* String to include between crumbs:
*/
var DISPLAY_SEPARATOR = " &gt; ";
/**
* String to include at the beginning of the trail
*/
var DISPLAY_PREPREND = " &gt; ";
/**
* String to include at the end of the trail
*/
var DISPLAY_POSTPREND = "";
/**
* CSS Class to use for a single crumb:
*/
var CSS_CLASS_CRUMB = "breadcrumb";
/**
* CSS Class to use for the complete trail:
*/
var CSS_CLASS_TRAIL = "breadcrumbTrail";
/**
* CSS Class to use for crumb separator:
*/
var CSS_CLASS_SEPARATOR = "crumbSeparator";
/**
* Array of strings containing common file extensions. We use this to
* determine what part of the url to ignore (if it contains one of the
* string specified here, we ignore it).
*/
var FILE_EXTENSIONS = new Array( ".html", ".htm", ".jsp", ".php", ".php3", ".php4" );
/**
* String that separates parts of the breadcrumb trail from each other.
* When this is no longer a slash, I'm sure I'll be old and grey.
*/
var PATH_SEPARATOR = "/";
/* ========================================================================
UTILITY FUNCTIONS
======================================================================== */
/**
* Capitalize first letter of the provided string and return the modified
* string.
*/
function sentenceCase( string )
{ return string;
//var lower = string.toLowerCase();
//return lower.substr(0,1).toUpperCase() + lower.substr(1);
}
/**
* Returns an array containing the names of all the directories in the
* current document URL
*/
function getDirectoriesInURL()
{
var trail = document.location.pathname.split( PATH_SEPARATOR );
// check whether last section is a file or a directory
var lastcrumb = trail[trail.length-1];
for( var i = 0; i < FILE_EXTENSIONS.length; i++ )
{
if( lastcrumb.indexOf( FILE_EXTENSIONS[i] ) )
{
// it is, remove it and send results
return trail.slice( 1, trail.length-1 );
}
}
// it's not; send the trail unmodified
return trail.slice( 1, trail.length );
}
/* ========================================================================
BREADCRUMB FUNCTIONALITY
======================================================================== */
/**
* Return a two-dimensional array describing the breadcrumbs based on the
* array of directories passed in.
*/
function getBreadcrumbs( dirs )
{
var prefix = "/";
var postfix = "/";
// the array we will return
var crumbs = new Array();
if( dirs != null )
{
for( var i = 0; i < dirs.length; i++ )
{
prefix += dirs[i] + postfix;
crumbs.push( new Array( dirs[i], prefix ) );
}
}
// preprend the PREPREND_CRUMBS
if(PREPREND_CRUMBS.length > 0 )
{
return PREPREND_CRUMBS.concat( crumbs );
}
return crumbs;
}
/**
* Return a string containing a simple text breadcrumb trail based on the
* two-dimensional array passed in.
*/
function getCrumbTrail( crumbs )
{
var xhtml = DISPLAY_PREPREND;
for( var i = 0; i < crumbs.length; i++ )
{
xhtml += '<a href="' + crumbs[i][1] + '" >';
xhtml += unescape( crumbs[i][0] ) + '</a>';
if( i != (crumbs.length-1) )
{
xhtml += DISPLAY_SEPARATOR;
}
}
xhtml += DISPLAY_POSTPREND;
return xhtml;
}
/**
* Return a string containing an XHTML breadcrumb trail based on the
* two-dimensional array passed in.
*/
function getCrumbTrailXHTML( crumbs )
{
var xhtml = '<span class="' + CSS_CLASS_TRAIL + '">';
xhtml += DISPLAY_PREPREND;
for( var i = 0; i < crumbs.length; i++ )
{
xhtml += '<a href="' + crumbs[i][1] + '" class="' + CSS_CLASS_CRUMB + '">';
xhtml += unescape( crumbs[i][0] ) + '</a>';
if( i != (crumbs.length-1) )
{
xhtml += '<span class="' + CSS_CLASS_SEPARATOR + '">' + DISPLAY_SEPARATOR + '</span>';
}
}
xhtml += DISPLAY_POSTPREND;
xhtml += '</span>';
return xhtml;
}
/* ========================================================================
PRINT BREADCRUMB TRAIL
======================================================================== */
// check if we're local; if so, only print the PREPREND_CRUMBS
if( document.location.href.toLowerCase().indexOf( "http://" ) == -1 )
{
document.write( getCrumbTrail( getBreadcrumbs() ) );
}
else
{
document.write( getCrumbTrail( getBreadcrumbs( getDirectoriesInURL() ) ) );
}

View File

@ -1,166 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
function init()
{ //embedded in the doc
//ndeSetTextSize();
}
function checkBrowser(){
if (!document.getElementsByTagName){
return true;
}
else{
return false;
}
}
function ndeSetTextSize(chgsize,rs)
{
var startSize;
var newSize;
if (!checkBrowser)
{
return;
}
startSize = parseInt(ndeGetDocTextSize());
if (!startSize)
{
startSize = 16;
}
switch (chgsize)
{
case 'incr':
newSize = startSize + 2;
break;
case 'decr':
newSize = startSize - 2;
break;
case 'reset':
if (rs) {newSize = rs;} else {newSize = 16;}
break;
default:
try{
newSize = parseInt(ndeReadCookie("nde-textsize"));
}
catch(e){
alert(e);
}
if (!newSize || newSize == 'NaN')
{
newSize = startSize;
}
break;
}
if (newSize < 10)
{
newSize = 10;
}
newSize += 'px';
document.getElementsByTagName('html')[0].style.fontSize = newSize;
document.getElementsByTagName('body')[0].style.fontSize = newSize;
ndeCreateCookie("nde-textsize", newSize, 365);
}
function ndeGetDocTextSize()
{
if (!checkBrowser)
{
return 0;
}
var size = 0;
var body = document.getElementsByTagName('body')[0];
if (body.style && body.style.fontSize)
{
size = body.style.fontSize;
}
else if (typeof(getComputedStyle) != 'undefined')
{
size = getComputedStyle(body,'').getPropertyValue('font-size');
}
else if (body.currentStyle)
{
size = body.currentStyle.fontSize;
}
//fix IE bug
if( isNaN(size)){
if(size.substring(size.length-1)=="%"){
return
}
}
return size;
}
function ndeCreateCookie(name,value,days)
{
var cookie = name + "=" + value + ";";
if (days)
{
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
cookie += " expires=" + date.toGMTString() + ";";
}
cookie += " path=/";
document.cookie = cookie;
}
function ndeReadCookie(name)
{
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i = 0; i < ca.length; i++)
{
var c = ca[i];
while (c.charAt(0) == ' ')
{
c = c.substring(1, c.length);
}
ctest = c.substring(0,name.length);
if(ctest == name){
return c.substring(nameEQ.length,c.length);
}
}
return null;
}

View File

@ -1,40 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* getBlank script - when included in a html file and called from a form text field, will set the value of this field to ""
* if the text value is still the standard value.
* getPrompt script - when included in a html file and called from a form text field, will set the value of this field to the prompt
* if the text value is empty.
*
* Typical usage:
* <script type="text/javascript" language="JavaScript" src="getBlank.js"></script>
* <input type="text" id="query" value="Search the site:" onFocus="getBlank (this, 'Search the site:');" onBlur="getBlank (this, 'Search the site:');"/>
*/
<!--
function getBlank (form, stdValue){
if (form.value == stdValue){
form.value = '';
}
return true;
}
function getPrompt (form, stdValue){
if (form.value == ''){
form.value = stdValue;
}
return true;
}
//-->

View File

@ -1,45 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* This script, when included in a html file, can be used to make collapsible menus
*
* Typical usage:
* <script type="text/javascript" language="JavaScript" src="menu.js"></script>
*/
if (document.getElementById){
document.write('<style type="text/css">.menuitemgroup{display: none;}</style>')
}
function SwitchMenu(obj, thePath)
{
var open = 'url("'+thePath + 'images/chapter_open.gif")';
var close = 'url("'+thePath + 'images/chapter.gif")';
if(document.getElementById) {
var el = document.getElementById(obj);
var title = document.getElementById(obj+'Title');
if(el.style.display != "block"){
title.style.backgroundImage = open;
el.style.display = "block";
}else{
title.style.backgroundImage = close;
el.style.display = "none";
}
}// end - if(document.getElementById)
}//end - function SwitchMenu(obj)

View File

@ -1 +0,0 @@
The images in this directory are used if the current skin lacks them.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 B

View File

@ -1,92 +0,0 @@
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="orientation-tb"/>
<xsl:param name="orientation-lr"/>
<xsl:param name="size"/>
<xsl:param name="bg-color-name"/>
<xsl:param name="stroke-color-name"/>
<xsl:param name="fg-color-name"/>
<!-- if not all colors are present, don't even try to render the corners -->
<xsl:variable name="isize">
<xsl:choose>
<xsl:when test="$bg-color-name and $stroke-color-name and $fg-color-name">
<xsl:value-of select="$size"/>
</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="smallersize" select="number($isize)-1"/>
<xsl:variable name="biggersize" select="number($isize)+1"/>
<xsl:variable name="bg">
<xsl:if test="skinconfig/colors/color[@name=$bg-color-name]">fill:<xsl:value-of select="skinconfig/colors/color[@name=$bg-color-name]/@value"/>;</xsl:if>
</xsl:variable>
<xsl:variable name="fill">
<xsl:if test="skinconfig/colors/color[@name=$stroke-color-name]">fill:<xsl:value-of select="skinconfig/colors/color[@name=$stroke-color-name]/@value"/>;</xsl:if>
</xsl:variable>
<xsl:variable name="stroke">
<xsl:if test="skinconfig/colors/color[@name=$fg-color-name]">stroke:<xsl:value-of select="skinconfig/colors/color[@name=$fg-color-name]/@value"/>;</xsl:if>
</xsl:variable>
<xsl:template match="skinconfig">
<svg width="{$isize}" height="{$isize}">
<!-- background-->
<rect x="-1" y="-1" width="{$biggersize}" height="{$biggersize}" style="{$bg}stroke-width:0"/>
<!-- 0,0 0,-4 4,0 4,-4-->
<xsl:variable name="flip-tb-scale">
<xsl:choose>
<xsl:when test="$orientation-tb='t'">1</xsl:when>
<xsl:otherwise>-1</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="flip-lr-scale">
<xsl:choose>
<xsl:when test="$orientation-lr='l'">1</xsl:when>
<xsl:otherwise>-1</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="flip-tb-translate">
<xsl:choose>
<xsl:when test="$orientation-tb='t'">0</xsl:when>
<xsl:otherwise>-<xsl:value-of select="$isize" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="flip-lr-translate">
<xsl:choose>
<xsl:when test="$orientation-lr='l'">0</xsl:when>
<xsl:otherwise>-<xsl:value-of select="$isize" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- flip transform -->
<g transform="scale({$flip-lr-scale},{$flip-tb-scale}) translate({$flip-lr-translate}, {$flip-tb-translate})">
<xsl:call-template name="figure" />
</g>
</svg>
</xsl:template>
<xsl:template name="figure">
<!-- Just change shape here -->
<g transform="translate(0.5 0.5)">
<ellipse cx="{$smallersize}" cy="{$smallersize}" rx="{$smallersize}" ry="{$smallersize}"
style="{$fill}{$stroke}stroke-width:1"/>
</g>
<!-- end -->
</xsl:template>
<xsl:template match="*"></xsl:template>
<xsl:template match="text()"></xsl:template>
</xsl:stylesheet>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 B

View File

@ -1,28 +0,0 @@
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="corner-imports.svg.xslt" />
<!-- Diagonal 45 degrees corner -->
<xsl:template name="figure">
<xsl:variable name="biggersize" select="number($size)+number($size)"/>
<g transform="translate(0 0.5)">
<polygon points="0,{$size} {$size},0 {$biggersize},0 {$biggersize},{$biggersize} 0,{$biggersize}"
style="{$fill}{$stroke}stroke-width:1"/>
</g>
</xsl:template>
</xsl:stylesheet>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 932 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 856 B

View File

@ -1,55 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<svg width="20pt" height="20pt"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<defs
id="defs550">
<linearGradient id="gray2white">
<stop style="stop-color:#7f7f7f;stop-opacity:1;" offset="0.000000"/>
<stop style="stop-color:#ffffff;stop-opacity:1;" offset="1.000000"/>
</linearGradient>
<linearGradient id="pageshade" xlink:href="#gray2white"
x1="0.95" y1="0.95"
x2="0.40" y2="0.20"
gradientUnits="objectBoundingBox" spreadMethod="pad" />
<path d="M 0 0 L 200 0" style="stroke:#000000;stroke-width:1pt;" id="hr"/>
</defs>
<g transform="scale(0.08)">
<g transform="translate(40, 0)">
<rect width="230" height="300" x="0" y="0"
style="fill:url(#pageshade);fill-rule:evenodd;
stroke:#000000;stroke-width:1.25;"/>
<g transform="translate(15, 60)">
<use xlink:href="#hr" x="0" y="0"/>
<use xlink:href="#hr" x="0" y="60"/>
<use xlink:href="#hr" x="0" y="120"/>
<use xlink:href="#hr" x="0" y="180"/>
</g>
</g>
<g transform="translate(0,70),scale(1.1,1.6)">
<rect width="200" height="100" x="0" y="0"
style="fill:#ff0000;fill-rule:evenodd;
stroke:#000000;stroke-width:2.33903;"/>
<text x="20" y="75"
style="stroke:#ffffff;stroke-width:1.0;
font-size:72;font-weight:normal;fill:#ffffff;
font-family:Arial;text-anchor:start;">POD</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 438 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 B

View File

@ -1,27 +0,0 @@
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="corner-imports.svg.xslt" />
<!-- Rounded corner -->
<xsl:template name="figure">
<g transform="translate(0.5 0.5)">
<ellipse cx="{$smallersize}" cy="{$smallersize}" rx="{$smallersize}" ry="{$smallersize}"
style="{$fill}{$stroke}stroke-width:1"/>
</g>
</xsl:template>
</xsl:stylesheet>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 784 B

View File

@ -1,55 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<svg width="20pt" height="20pt"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<defs
id="defs550">
<linearGradient id="gray2white">
<stop style="stop-color:#7f7f7f;stop-opacity:1;" offset="0.000000"/>
<stop style="stop-color:#ffffff;stop-opacity:1;" offset="1.000000"/>
</linearGradient>
<linearGradient id="pageshade" xlink:href="#gray2white"
x1="0.95" y1="0.95"
x2="0.40" y2="0.20"
gradientUnits="objectBoundingBox" spreadMethod="pad" />
<path d="M 0 0 L 200 0" style="stroke:#000000;stroke-width:1pt;" id="hr"/>
</defs>
<g transform="scale(0.08)">
<g transform="translate(40, 0)">
<rect width="230" height="300" x="0" y="0"
style="fill:url(#pageshade);fill-rule:evenodd;
stroke:#000000;stroke-width:1.25;"/>
<g transform="translate(15, 60)">
<use xlink:href="#hr" x="0" y="0"/>
<use xlink:href="#hr" x="0" y="60"/>
<use xlink:href="#hr" x="0" y="120"/>
<use xlink:href="#hr" x="0" y="180"/>
</g>
</g>
<g transform="translate(0,70),scale(1.1,1.6)">
<rect width="200" height="100" x="0" y="0"
style="fill:#ff0000;fill-rule:evenodd;
stroke:#000000;stroke-width:2.33903;"/>
<text x="20" y="75"
style="stroke:#ffffff;stroke-width:1.0;
font-size:72;font-weight:normal;fill:#ffffff;
font-family:Arial;text-anchor:start;">TXT</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 990 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 647 B

View File

@ -1,48 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* This script, when included in a html file, can be used to make collapsible menus
*
* Typical usage:
* <script type="text/javascript" language="JavaScript" src="menu.js"></script>
*/
if (document.getElementById){
document.write('<style type="text/css">.menuitemgroup{display: none;}</style>')
}
function SwitchMenu(obj)
{
if(document.getElementById) {
var el = document.getElementById(obj);
var title = document.getElementById(obj+'Title');
if(obj.indexOf("_selected_")==0&&el.style.display == ""){
el.style.display = "block";
title.className = "pagegroupselected";
}
if(el.style.display != "block"){
el.style.display = "block";
title.className = "pagegroupopen";
}
else{
el.style.display = "none";
title.className = "pagegroup";
}
}// end - if(document.getElementById)
}//end - function SwitchMenu(obj)

View File

@ -1,50 +0,0 @@
Notes for developer:
--Legend-------------------
TODO -> blocker
DONE -> blocker
ToDo -> enhancement bug
done -> enhancement bug
--Issues-------------------
- the corner images should be rendered through svg with the header color.
-> DONE
-> ToDo: get rid of the images and use only divs!
- the menu points should be displayed "better".
-> DONE
-- Use the krysalis-site menu approach for the overall menu display.
-> DONE
-- Use the old lenya innermenu approch to further enhance the menu .
-> DONE
- the content area needs some attention.
-> DONE
-- introduce the heading scheme from krysalis (<headings type="clean|box|underlined"/>)
-> DONE
-> ToDo: make box with round corners
-> done: make underlined with variable border height
-> ToDo: make underline with bottom round corner
-- introduce the toc for each html-page
-> DONE
-- introduce the external-link-images.
-> DONE
- the publish note should be where now only a border is.
Like <div id="published"/>
-> DONE
, but make it configurable.
-> DONE
- footer needs some attention
-> DONE
-- the footer do not have the color profile! Enable it!
-> DONE
-- the footer should as well contain a feedback link.
See http://issues.apache.org/eyebrowse/ReadMsg?listName=forrest-user@xml.apache.org&msgNo=71
-> DONE
- introduce credits alternativ location
-> DONE
- border for published / breadtrail / menu /tab divs
-> ToDo

View File

@ -1,54 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
body {
font-family: Georgia, Palatino, serif;
font-size: 12pt;
background: white;
}
#tabs,
#menu,
#content .toc {
display: none;
}
#content {
width: auto;
padding: 0;
float: none !important;
color: black;
background: inherit;
}
a:link, a:visited {
color: #336699;
background: inherit;
text-decoration: underline;
}
#top .logo {
padding: 0;
margin: 0 0 2em 0;
}
#footer {
margin-top: 4em;
}
acronym {
border: 0;
}

View File

@ -1,175 +0,0 @@
/* ==================== aural ============================ */
@media aural {
h1, h2, h3, h4, h5, h6 { voice-family: paul, male; stress: 20; richness: 90 }
h1 { pitch: x-low; pitch-range: 90 }
h2 { pitch: x-low; pitch-range: 80 }
h3 { pitch: low; pitch-range: 70 }
h4 { pitch: medium; pitch-range: 60 }
h5 { pitch: medium; pitch-range: 50 }
h6 { pitch: medium; pitch-range: 40 }
li, dt, dd { pitch: medium; richness: 60 }
dt { stress: 80 }
pre, code, tt { pitch: medium; pitch-range: 0; stress: 0; richness: 80 }
em { pitch: medium; pitch-range: 60; stress: 60; richness: 50 }
strong { pitch: medium; pitch-range: 60; stress: 90; richness: 90 }
dfn { pitch: high; pitch-range: 60; stress: 60 }
s, strike { richness: 0 }
i { pitch: medium; pitch-range: 60; stress: 60; richness: 50 }
b { pitch: medium; pitch-range: 60; stress: 90; richness: 90 }
u { richness: 0 }
:link { voice-family: harry, male }
:visited { voice-family: betty, female }
:active { voice-family: betty, female; pitch-range: 80; pitch: x-high }
}
a.external {
padding: 0 20px 0px 0px;
display:inline;
background-repeat: no-repeat;
background-position: center right;
background-image: url(images/external-link.gif);
}
#top { background-color: #FFFFFF;}
#top .header .current { background-color: #4C6C8F;}
#top .header .current a:link { color: #ffffff; }
#top .header .current a:visited { color: #ffffff; }
#top .header .current a:hover { color: #ffffff; }
#tabs li { background-color: #E5E4D9 ;}
#tabs li a:link { color: #000000; }
#tabs li a:visited { color: #000000; }
#tabs li a:hover { color: #000000; }
#level2tabs a.selected { background-color: #4C6C8F ;}
#level2tabs a:link { color: #ffffff; }
#level2tabs a:visited { color: #ffffff; }
#level2tabs a:hover { color: #ffffff; }
#level2tabs { background-color: #E5E4D9;}
#level2tabs a.unselected:link { color: #000000; }
#level2tabs a.unselected:visited { color: #000000; }
#level2tabs a.unselected:hover { color: #000000; }
.heading { background-color: #E5E4D9;}
.boxed { background-color: #E5E4D9;}
.underlined_5 {border-bottom: solid 5px #E5E4D9;}
.underlined_10 {border-bottom: solid 10px #E5E4D9;}
table caption {
background-color: #E5E4D9;
color: #000000;
}
#feedback {
color: #FFFFFF;
background: #4C6C8F;
text-align: center;
}
#feedback #feedbackto {
color: #FFFFFF;
}
#publishedStrip {
color: #FFFFFF;
background: #4C6C8F;
}
#publishedStrip {
color: #000000;
background: #E5E4D9;
}
#menu .menupagetitle { background-color: #CFDCED;
color: #000000;}
#menu { border-color: #999999;}
#menu .menupagetitle { border-color: #999999;}
#menu .menupageitemgroup { border-color: #999999;}
#menu { background-color: #4C6C8F;}
#menu { color: #ffffff;}
#menu a:link { color: #ffffff;}
#menu a:visited { color: #ffffff;}
#menu a:hover {
background-color: #4C6C8F;
color: #ffffff;}
#menu h1 {
color: #000000;
background-color: #cfdced;
}
#top .searchbox {
background-color: #E5E4D9 ;
color: #000000;
}
#menu .menupageitemgroup {
background-color: #E5E4D9;
}
#menu .menupageitem {
color: #000000;
}
#menu .menupageitem a:link { color: #000000;}
#menu .menupageitem a:visited { color: #000000;}
#menu .menupageitem a:hover {
background-color: #E5E4D9;
color: #000000;
}
body{
background-color: #ffffff;
color: #000000;
}
a:link { color:#0000ff}
a:visited { color:#009999}
a:hover { color:#6587ff}
.ForrestTable { background-color: #ccc;}
.ForrestTable td { background-color: #ffffff;}
.highlight { background-color: #ffff00;}
.fixme { border-color: #c60;}
.note { border-color: #069;}
.warning { border-color: #900;}
.code { border-color: #a5b6c6;}
#footer { background-color: #E5E4D9;}
/* extra-css */
p.quote {
margin-left: 2em;
padding: .5em;
background-color: #f0f0f0;
font-family: monospace;
}
img.float-right {
float: right;
margin-left: 2em;
padding: .5em;
}
#footer a { color: #0F3660; }
#footer a:visited { color: #009999; }
pre.code {
margin-left: 2em;
margin-right: 2em;
padding: 0.5em;
background-color: #f0f0f0;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,587 +0,0 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
body { margin: 0px 0px 0px 0px; font-family: Verdana, Helvetica, sans-serif; }
h1 { font-size : 160%; margin: 0px 0px 0px 0px; padding: 0px; }
h2 { font-size : 140%; margin: 1em 0px 0.8em 0px; padding: 0px; font-weight : bold;}
h3 { font-size : 130%; margin: 0.8em 0px 0px 0px; padding: 0px; font-weight : bold; }
.h3 { margin: 22px 0px 3px 0px; }
h4 { font-size : 120%; margin: 0.7em 0px 0px 0px; padding: 0px; font-weight : normal; text-align: left; }
.h4 { margin: 18px 0px 0px 0px; }
h4.faq { font-size : 120%; margin: 18px 0px 0px 0px; padding: 0px; font-weight : bold; text-align: left; }
h5 { font-size : 100%; margin: 14px 0px 0px 0px; padding: 0px; font-weight : normal; text-align: left; }
/**
* table
*/
table .title { background-color: #000000; }
.ForrestTable {
color: #ffffff;
background-color: #7099C5;
width: 100%;
font-size : 100%;
empty-cells: show;
}
table caption {
padding-left: 5px;
color: white;
text-align: left;
font-weight: bold;
background-color: #000000;
}
.ForrestTable td {
color: black;
background-color: #f0f0ff;
}
.ForrestTable th { text-align: center; }
/**
* Page Header
*/
#top {
position: relative;
float: left;
width: 100%;
background: #294563; /* if you want a background in the header, put it here */
}
#top .breadtrail {
background: #CFDCED;
color: black;
border-bottom: solid 1px white;
padding: 3px 10px;
font-size: 75%;
}
#top .breadtrail a { color: black; }
#top .header {
float: left;
width: 100%;
background: url("images/header_white_line.gif") repeat-x bottom;
}
#top .grouplogo {
padding: 7px 0 10px 10px;
float: left;
text-align: left;
}
#top .projectlogo {
padding: 7px 0 10px 10px;
float: left;
width: 33%;
text-align: right;
}
#top .projectlogoA1 {
padding: 7px 0 10px 10px;
float: right;
}
html>body #top .searchbox {
bottom: 0px;
}
#top .searchbox {
position: absolute;
right: 10px;
height: 42px;
font-size: 70%;
white-space: nowrap;
text-align: right;
color: white;
background-color: #000000;
z-index:0;
background-image: url(images/rc-t-l-5-1header-2searchbox-3searchbox.png);
background-repeat: no-repeat;
background-position: top left;
bottom: -1px; /* compensate for IE rendering issue */
}
#top .searchbox form {
padding: 5px 10px;
margin: 0;
}
#top .searchbox p {
padding: 0 0 2px 0;
margin: 0;
}
#top .searchbox input {
font-size: 100%;
}
#tabs {
clear: both;
padding-left: 10px;
margin: 0;
list-style: none;
}
/* background: #CFDCED url("images/tab-right.gif") no-repeat right top;*/
#tabs li {
float: left;
background-image: url(images/rc-t-r-5-1header-2tab-unselected-3tab-unselected.png);
background-repeat: no-repeat;
background-position: top right;
background-color: #000000;
margin: 0 3px 0 0;
padding: 0;
}
/*background: url("images/tab-left.gif") no-repeat left top;*/
#tabs li a {
float: left;
display: block;
font-family: verdana, arial, sans-serif;
text-decoration: none;
color: black;
white-space: nowrap;
background-image: url(images/rc-t-l-5-1header-2tab-unselected-3tab-unselected.png);
background-repeat: no-repeat;
background-position: top left;
padding: 5px 15px 4px;
width: .1em; /* IE/Win fix */
}
#tabs li a:hover {
cursor: pointer;
text-decoration:underline;
}
#tabs > li a { width: auto; } /* Rest of IE/Win fix */
/* Commented Backslash Hack hides rule from IE5-Mac \*/
#tabs a { float: none; }
/* End IE5-Mac hack */
#top .header .current {
background-color: #4C6C8F;
background-image: url(images/rc-t-r-5-1header-2tab-selected-3tab-selected.png);
background-repeat: no-repeat;
background-position: top right;
}
#top .header .current a {
font-weight: bold;
padding-bottom: 5px;
color: white;
background-image: url(images/rc-t-l-5-1header-2tab-selected-3tab-selected.png);
background-repeat: no-repeat;
background-position: top left;
}
#publishedStrip {
padding-right: 10px;
padding-left: 20px;
padding-top: 3px;
padding-bottom:3px;
color: #ffffff;
font-size : 60%;
font-weight: bold;
background-color: #4C6C8F;
text-align:right;
}
#level2tabs {
margin: 0;
float:left;
position:relative;
}
#level2tabs a:hover {
cursor: pointer;
text-decoration:underline;
}
#level2tabs a{
cursor: pointer;
text-decoration:none;
background-image: url('images/chapter.gif');
background-repeat: no-repeat;
background-position: center left;
padding-left: 6px;
margin-left: 6px;
}
/*
* border-top: solid #4C6C8F 15px;
*/
#main {
position: relative;
background: white;
clear:both;
}
#main .breadtrail {
clear:both;
position: relative;
background: #CFDCED;
color: black;
border-bottom: solid 1px black;
border-top: solid 1px black;
padding: 0px 180px;
font-size: 75%;
z-index:10;
}
/**
* Round corner
*/
#roundtop {
background-image: url(images/rc-t-r-15-1body-2menu-3menu.png);
background-repeat: no-repeat;
background-position: top right;
}
#roundbottom {
background-image: url(images/rc-b-r-15-1body-2menu-3menu.png);
background-repeat: no-repeat;
background-position: top right;
}
img.corner {
width: 15px;
height: 15px;
border: none;
display: block !important;
}
.roundtopsmall {
background-image: url(images/rc-t-r-5-1header-2searchbox-3searchbox.png);
background-repeat: no-repeat;
background-position: top right;
}
#roundbottomsmall {
background-image: url(images/rc-b-r-5-1header-2tab-selected-3tab-selected.png);
background-repeat: no-repeat;
background-position: top right;
}
img.cornersmall {
width: 5px;
height: 5px;
border: none;
display: block !important;
}
/**
* Side menu
*/
#menu a { font-weight: normal; text-decoration: none;}
#menu a:visited { font-weight: normal; }
#menu a:active { font-weight: normal; }
#menu a:hover { font-weight: normal; text-decoration:underline;}
#menuarea { width:10em;}
#menu {
position: relative;
float: left;
width: 160px;
padding-top: 0px;
top:-18px;
left:10px;
z-index: 20;
background-color: #f90;
font-size : 70%;
}
.menutitle {
cursor:pointer;
padding: 3px 12px;
margin-left: 10px;
background-image: url('images/chapter.gif');
background-repeat: no-repeat;
background-position: center left;
font-weight : bold;
}
.menutitle:hover{text-decoration:underline;cursor: pointer;}
#menu .menuitemgroup {
margin: 0px 0px 6px 8px;
padding: 0px;
font-weight : bold; }
#menu .selectedmenuitemgroup{
margin: 0px 0px 0px 8px;
padding: 0px;
font-weight : normal;
}
#menu .menuitem {
padding: 2px 0px 1px 13px;
background-image: url('images/page.gif');
background-repeat: no-repeat;
background-position: center left;
font-weight : normal;
margin-left: 10px;
}
#menu .menupage {
margin: 2px 0px 1px 10px;
padding: 0px 3px 0px 12px;
background-image: url('images/page.gif');
background-repeat: no-repeat;
background-position: center left;
font-style : normal;
}
#menu .menupagetitle {
padding: 0px 0px 0px 1px;
font-style : normal;
border-style: solid;
border-width: 1px;
margin-right: 10px;
}
#menu .menupageitemgroup {
padding: 3px 0px 4px 6px;
font-style : normal;
border-bottom: 1px solid ;
border-left: 1px solid ;
border-right: 1px solid ;
margin-right: 10px;
}
#menu .menupageitem {
font-style : normal;
font-weight : normal;
border-width: 0px;
font-size : 90%;
}
#menu #credit {
text-align: center;
}
#menu #credit2 {
text-align: center;
padding: 3px 3px 3px 3px;
background-color: #ffffff;
}
#menu .searchbox {
text-align: center;
}
#menu .searchbox form {
padding: 3px 3px;
margin: 0;
}
#menu .searchbox input {
font-size: 100%;
}
#content {
padding: 20px 20px 20px 180px;
margin: 0;
font : small Verdana, Helvetica, sans-serif;
font-size : 80%;
}
#content ul {
margin: 0;
padding: 0 25px;
}
#content li {
padding: 0 5px;
}
#feedback {
color: black;
background: #CFDCED;
text-align:center;
margin-top: 5px;
}
#feedback #feedbackto {
font-size: 90%;
color: black;
}
#footer {
clear: both;
position: relative; /* IE bugfix (http://www.dracos.co.uk/web/css/ie6floatbug/) */
width: 100%;
background: #CFDCED;
border-top: solid 1px #4C6C8F;
color: black;
}
#footer .copyright {
position: relative; /* IE bugfix cont'd */
padding: 5px;
margin: 0;
width: 45%;
}
#footer .lastmodified {
position: relative; /* IE bugfix cont'd */
float: right;
width: 45%;
padding: 5px;
margin: 0;
text-align: right;
}
#footer a { color: white; }
#footer #logos {
text-align: left;
}
/**
* Misc Styles
*/
acronym { cursor: help; }
.boxed { background-color: #a5b6c6;}
.underlined_5 {border-bottom: solid 5px #4C6C8F;}
.underlined_10 {border-bottom: solid 10px #4C6C8F;}
/* ==================== snail trail ============================ */
.trail {
position: relative; /* IE bugfix cont'd */
font-size: 70%;
text-align: right;
float: right;
margin: -10px 5px 0px 5px;
padding: 0;
}
#motd-area {
position: relative; /* IE bugfix cont'd */
float: right;
width: 35%;
background-color: #f0f0ff;
border-top: solid 1px #4C6C8F;
border-bottom: solid 1px #4C6C8F;
margin-bottom: 15px;
margin-left: 15px;
margin-right: 10%;
padding-bottom: 5px;
padding-top: 5px;
}
#minitoc-area {
border-top: solid 1px #4C6C8F;
border-bottom: solid 1px #4C6C8F;
margin: 15px 10% 5px 15px;
/* margin-bottom: 15px;
margin-left: 15px;
margin-right: 10%;*/
padding-bottom: 7px;
padding-top: 5px;
}
.minitoc {
list-style-image: url('images/current.gif');
font-weight: normal;
}
li p {
margin: 0;
padding: 0;
}
.pdflink {
position: relative; /* IE bugfix cont'd */
float: right;
margin: 0px 5px;
padding: 0;
}
.pdflink br {
margin-top: -10px;
padding-left: 1px;
}
.pdflink a {
display: block;
font-size: 70%;
text-align: center;
margin: 0;
padding: 0;
}
.pdflink img {
display: block;
height: 16px;
width: 16px;
}
.xmllink {
position: relative; /* IE bugfix cont'd */
float: right;
margin: 0px 5px;
padding: 0;
}
.xmllink br {
margin-top: -10px;
padding-left: 1px;
}
.xmllink a {
display: block;
font-size: 70%;
text-align: center;
margin: 0;
padding: 0;
}
.xmllink img {
display: block;
height: 16px;
width: 16px;
}
.podlink {
position: relative; /* IE bugfix cont'd */
float: right;
margin: 0px 5px;
padding: 0;
}
.podlink br {
margin-top: -10px;
padding-left: 1px;
}
.podlink a {
display: block;
font-size: 70%;
text-align: center;
margin: 0;
padding: 0;
}
.podlink img {
display: block;
height: 16px;
width: 16px;
}
.printlink {
position: relative; /* IE bugfix cont'd */
float: right;
}
.printlink br {
margin-top: -10px;
padding-left: 1px;
}
.printlink a {
display: block;
font-size: 70%;
text-align: center;
margin: 0;
padding: 0;
}
.printlink img {
display: block;
height: 16px;
width: 16px;
}
p.instruction {
display: list-item;
list-style-image: url('../images/instruction_arrow.png');
list-style-position: outside;
margin-left: 2em;
}

View File

@ -1,137 +0,0 @@
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="skinconfig">
<xsl:if test="not(colors)">
<colors>
<!-- Lenya -->
<color name="header" value="#ffffff"/>
<color name="tab-selected" value="#4C6C8F" link="#ffffff" vlink="#ffffff" hlink="#ffffff"/>
<color name="tab-unselected" value="#E5E4D9" link="#000000" vlink="#000000" hlink="#000000"/>
<color name="subtab-selected" value="#4C6C8F" link="#ffffff" vlink="#ffffff" hlink="#ffffff"/>
<color name="subtab-unselected" value="#E5E4D9" link="#000000" vlink="#000000" hlink="#000000"/>
<color name="heading" value="#E5E4D9"/>
<color name="subheading" value="#E5E4D9"/>
<color name="published" value="#4C6C8F" font="#FFFFFF"/>
<color name="feedback" value="#4C6C8F" font="#FFFFFF" align="center"/>
<color name="navstrip" value="#E5E4D9" font="#000000"/>
<color name="toolbox" value="#CFDCED" font="#000000"/>
<color name="border" value="#999999"/>
<color name="menu" value="#4C6C8F" font="#ffffff" link="#ffffff" vlink="#ffffff" hlink="#ffffff" />
<color name="menuheading" value="#cfdced" font="#000000" />
<color name="searchbox" value="#E5E4D9" font="#000000"/>
<color name="dialog" value="#E5E4D9" font="#000000"/>
<color name="body" value="#ffffff" />
<color name="table" value="#ccc"/>
<color name="table-cell" value="#ffffff"/>
<color name="highlight" value="#ffff00"/>
<color name="fixme" value="#cc6600"/>
<color name="note" value="#006699"/>
<color name="warning" value="#990000"/>
<color name="code" value="#003366"/>
<color name="footer" value="#E5E4D9"/>
</colors>
</xsl:if>
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:copy-of select="node()[not(name(.)='colors')]"/>
<xsl:apply-templates select="colors"/>
</xsl:copy>
</xsl:template>
<xsl:template match="colors">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:copy-of select="node()[name(.)='color']"/>
<xsl:if test="not(color[@name='header'])">
<color name="header" value="#FFFFFF"/>
</xsl:if>
<xsl:if test="not(color[@name='tab-selected'])">
<color name="tab-selected" value="#4C6C8F" link="#ffffff" vlink="#ffffff" hlink="#ffffff"/>
</xsl:if>
<xsl:if test="not(color[@name='tab-unselected'])">
<color name="tab-unselected" value="#E5E4D9" link="#000000" vlink="#000000" hlink="#000000"/>
</xsl:if>
<xsl:if test="not(color[@name='subtab-selected'])">
<color name="subtab-selected" value="#4C6C8F" link="#ffffff" vlink="#ffffff" hlink="#ffffff"/>
</xsl:if>
<xsl:if test="not(color[@name='subtab-unselected'])">
<color name="subtab-unselected" value="#E5E4D9" link="#000000" vlink="#000000" hlink="#000000"/>
</xsl:if>
<xsl:if test="not(color[@name='heading'])">
<color name="heading" value="#E5E4D9"/>
</xsl:if>
<xsl:if test="not(color[@name='subheading'])">
<color name="subheading" value="#E5E4D9"/>
</xsl:if>
<xsl:if test="not(color[@name='feedback'])">
<color name="feedback" value="#4C6C8F" font="#FFFFFF" align="center"/>
</xsl:if>
<xsl:if test="not(color[@name='published'])">
<color name="published" value="#4C6C8F" font="#FFFFFF"/>
</xsl:if>
<xsl:if test="not(color[@name='navstrip'])">
<color name="navstrip" value="#E5E4D9" font="#000000"/>
</xsl:if>
<xsl:if test="not(color[@name='toolbox'])">
<color name="toolbox" value="#CFDCED" font="#000000"/>
</xsl:if>
<xsl:if test="not(color[@name='border'])">
<color name="border" value="#999999"/>
</xsl:if>
<xsl:if test="not(color[@name='menu'])">
<color name="menu" value="#4C6C8F" font="#ffffff" link="#ffffff" vlink="#ffffff" hlink="#ffffff" />
</xsl:if>
<xsl:if test="not(color[@name='menuheading'])">
<color name="menuheading" value="#cfdced" font="#000000" />
</xsl:if>
<xsl:if test="not(color[@name='searchbox'])">
<color name="searchbox" value="#E5E4D9" font="#000000"/>
</xsl:if>
<xsl:if test="not(color[@name='dialog'])">
<color name="dialog" value="#E5E4D9" font="#000000" link="#000000" vlink="#000000" hlink="#000000"/>
</xsl:if>
<xsl:if test="not(color[@name='body'])">
<color name="body" value="#ffffff" />
</xsl:if>
<xsl:if test="not(color[@name='table'])">
<color name="table" value="#ccc"/>
</xsl:if>
<xsl:if test="not(color[@name='table-cell'])">
<color name="table-cell" value="#ffffff"/>
</xsl:if>
<xsl:if test="not(color[@name='highlight'])">
<color name="highlight" value="#ffff00"/>
</xsl:if>
<xsl:if test="not(color[@name='fixme'])">
<color name="fixme" value="#c60"/>
</xsl:if>
<xsl:if test="not(color[@name='note'])">
<color name="note" value="#069"/>
</xsl:if>
<xsl:if test="not(color[@name='warning'])">
<color name="warning" value="#900"/>
</xsl:if>
<xsl:if test="not(color[@name='code'])">
<color name="code" value="#a5b6c6"/>
</xsl:if>
<xsl:if test="not(color[@name='footer'])">
<color name="footer" value="#E5E4D9"/>
</xsl:if>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>

View File

@ -1,299 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="lucene">
<title>Apache Lucene - System Requirements</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
<link type="text/css" href="skin/profile.css" rel="stylesheet">
<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
<link rel="shortcut icon" href="images/favicon.ico">
</head>
<body onload="init()">
<script type="text/javascript">ndeSetTextSize();</script>
<div id="top">
<!--+
|breadtrail
+-->
<div class="breadtrail">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://lucene.apache.org/">Lucene</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
</div>
<!--+
|header
+-->
<div class="header">
<!--+
|start group logo
+-->
<div class="grouplogo">
<a href="http://lucene.apache.org/"><img class="logoImage" alt="Lucene" src="http://www.apache.org/images/asf_logo_simple.png" title="Apache Lucene"></a>
</div>
<!--+
|end group logo
+-->
<!--+
|start Project Logo
+-->
<div class="projectlogo">
<a href="http://lucene.apache.org/java/"><img class="logoImage" alt="Lucene" src="http://lucene.apache.org/images/lucene_green_300.gif" title="Apache Lucene is a high-performance, full-featured text search engine library written entirely in
Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform."></a>
</div>
<!--+
|end Project Logo
+-->
<!--+
|start Search
+-->
<div class="searchbox">
<form action="http://search.lucidimagination.com/p:lucene" method="get" class="roundtopsmall">
<input onFocus="getBlank (this, 'Search the site with Lucene');" size="25" name="q" id="query" type="text" value="Search the site with Lucene">&nbsp;
<input name="Search" value="Search" type="submit">
</form>
<div style="position: relative; top: -5px; left: -10px">Powered by <a href="http://www.lucidimagination.com" style="color: #033268">Lucid Imagination</a>
</div>
</div>
<!--+
|end search
+-->
<!--+
|start Tabs
+-->
<ul id="tabs">
<li class="current">
<a class="selected" href="http://lucene.apache.org/java/docs/">Main</a>
</li>
<li>
<a class="unselected" href="http://wiki.apache.org/lucene-java">Wiki</a>
</li>
<li class="current">
<a class="selected" href="index.html">Lucene 4.0 Documentation</a>
</li>
</ul>
<!--+
|end Tabs
+-->
</div>
</div>
<div id="main">
<div id="publishedStrip">
<!--+
|start Subtabs
+-->
<div id="level2tabs"></div>
<!--+
|end Endtabs
+-->
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<!--+
|breadtrail
+-->
<div class="breadtrail">
&nbsp;
</div>
<!--+
|start Menu, mainarea
+-->
<!--+
|start Menu
+-->
<div id="menu">
<div onclick="SwitchMenu('menu_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Documentation</div>
<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
<div class="menuitem">
<a href="index.html">Overview</a>
</div>
<div class="menuitem">
<a href="changes/Changes.html">Changes</a>
</div>
<div onclick="SwitchMenu('menu_1.1.3', 'skin/')" id="menu_1.1.3Title" class="menutitle">Javadocs</div>
<div id="menu_1.1.3" class="menuitemgroup">
<div class="menuitem">
<a href="api/core/index.html">Core</a>
</div>
<div class="menuitem">
<a href="api/analyzers-common/index.html">Analysis: Common</a>
</div>
<div class="menuitem">
<a href="api/analyzers-kuromoji/index.html">Analysis: Kuromoji (Japanese)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-morfologik/index.html">Analysis: Morfologik (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-phonetic/index.html">Analysis: Phonetic</a>
</div>
<div class="menuitem">
<a href="api/analyzers-smartcn/index.html">Analysis: Smart Chinese</a>
</div>
<div class="menuitem">
<a href="api/analyzers-stempel/index.html">Analysis: Stempel (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-uima/index.html">Analysis: UIMA</a>
</div>
<div class="menuitem">
<a href="api/benchmark/index.html">Benchmark</a>
</div>
<div class="menuitem">
<a href="api/demo/index.html">Demo</a>
</div>
<div class="menuitem">
<a href="api/facet/index.html">Faceting</a>
</div>
<div class="menuitem">
<a href="api/grouping/index.html">Grouping</a>
</div>
<div class="menuitem">
<a href="api/highlighter/index.html">Highlighter</a>
</div>
<div class="menuitem">
<a href="api/join/index.html">Join</a>
</div>
<div class="menuitem">
<a href="api/memory/index.html">Memory</a>
</div>
<div class="menuitem">
<a href="api/misc/index.html">Miscellaneous</a>
</div>
<div class="menuitem">
<a href="api/queries/index.html">Queries</a>
</div>
<div class="menuitem">
<a href="api/queryparser/index.html">Query Parsers</a>
</div>
<div class="menuitem">
<a href="api/sandbox/index.html">Sandbox</a>
</div>
<div class="menuitem">
<a href="api/spatial/index.html">Spatial</a>
</div>
<div class="menuitem">
<a href="api/suggest/index.html">Suggest / Spellcheck</a>
</div>
<div class="menuitem">
<a href="api/test-framework/index.html">Test Framework</a>
</div>
</div>
<div class="menupage">
<div class="menupagetitle">System Requirements</div>
</div>
<div class="menuitem">
<a href="contributions.html">Contributions</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java/LuceneFAQ">FAQ</a>
</div>
<div class="menuitem">
<a href="fileformats.html">File Formats</a>
</div>
<div class="menuitem">
<a href="gettingstarted.html">Getting Started</a>
</div>
<div class="menuitem">
<a href="queryparsersyntax.html">Query Syntax</a>
</div>
<div class="menuitem">
<a href="scoring.html">Scoring</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java">Wiki</a>
</div>
<div class="menuitem">
<a href="http://lucene.apache.org/privacy.html">Privacy Policy</a>
</div>
</div>
<div id="credit"></div>
<div id="roundbottom">
<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
<!--+
|alternative credits
+-->
<div id="credit2"></div>
</div>
<!--+
|end Menu
+-->
<!--+
|start content
+-->
<div id="content">
<h1>Apache Lucene - System Requirements</h1>
<div id="minitoc-area">
<ul class="minitoc">
<li>
<a href="#System Requirements">System Requirements</a>
</li>
</ul>
</div>
<!-- <section id="Code Coverage"><title>Code Coverage</title>
<p>Code Coverage reports are available <a
href="">here</a></p>
</section> -->
<a name="N10013"></a><a name="System Requirements"></a>
<h2 class="boxed">System Requirements</h2>
<div class="section">
<p>
Lucene Core has the following minimum requirements:
<ul>
<li>Java 1.6.x or greater.</li>
<li>ANT 1.7.0 or greater.</li>
<li>CPU, Disk and Memory requirements are based on the many choices made in implementing Lucene (document size, number of documents, and number of hits retrieved to name a few.)</li>
</ul>
</p>
<p>Some modules may have other requirements, refer to their documentation and build files for information.</p>
</div>
</div>
<!--+
|end content
+-->
<div class="clearboth">&nbsp;</div>
</div>
<div id="footer">
<!--+
|start bottomstrip
+-->
<div class="lastmodified">
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<div class="copyright">
Copyright &copy;
2006 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
<!--+
|end bottomstrip
+-->
</div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-94576-12']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>

View File

@ -1,130 +0,0 @@
# Copyright 2002-2005 The Apache Software Foundation or its licensors,
# as applicable.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##############
# Properties used by forrest.build.xml for building the website
# These are the defaults, un-comment them only if you need to change them.
##############
# Prints out a summary of Forrest settings for this project
#forrest.echo=true
# Project name (used to name .war file)
#project.name=my-project
# Specifies name of Forrest skin to use
# See list at http://forrest.apache.org/docs/skins.html
project.skin=lucene
# Descriptors for plugins and skins
# comma separated list, file:// is supported
#forrest.skins.descriptors=http://forrest.apache.org/skins/skins.xml,file:///c:/myskins/skins.xml
#forrest.plugins.descriptors=http://forrest.apache.org/plugins/plugins.xml,http://forrest.apache.org/plugins/whiteboard-plugins.xml
##############
# behavioural properties
#project.menu-scheme=tab_attributes
#project.menu-scheme=directories
##############
# layout properties
# Properties that can be set to override the default locations
#
# Parent properties must be set. This usually means uncommenting
# project.content-dir if any other property using it is uncommented
#project.status=status.xml
#project.content-dir=src/documentation
#project.raw-content-dir=${project.content-dir}/content
#project.conf-dir=${project.content-dir}/conf
#project.sitemap-dir=${project.content-dir}
#project.xdocs-dir=${project.content-dir}/content/xdocs
#project.resources-dir=${project.content-dir}/resources
#project.stylesheets-dir=${project.resources-dir}/stylesheets
#project.images-dir=${project.resources-dir}/images
#project.schema-dir=${project.resources-dir}/schema
#project.skins-dir=${project.content-dir}/skins
#project.skinconf=${project.content-dir}/skinconf.xml
#project.lib-dir=${project.content-dir}/lib
#project.classes-dir=${project.content-dir}/classes
#project.translations-dir=${project.content-dir}/translations
project.configfile=${project.home}/src/documentation/conf/cli.xconf
##############
# validation properties
# This set of properties determine if validation is performed
# Values are inherited unless overridden.
# e.g. if forrest.validate=false then all others are false unless set to true.
#forrest.validate=true
#forrest.validate.xdocs=${forrest.validate}
#forrest.validate.skinconf=${forrest.validate}
#forrest.validate.sitemap=${forrest.validate}
#forrest.validate.stylesheets=${forrest.validate}
#forrest.validate.skins=${forrest.validate}
#forrest.validate.skins.stylesheets=${forrest.validate.skins}
# *.failonerror=(true|false) - stop when an XML file is invalid
#forrest.validate.failonerror=true
# *.excludes=(pattern) - comma-separated list of path patterns to not validate
# e.g.
#forrest.validate.xdocs.excludes=samples/subdir/**, samples/faq.xml
#forrest.validate.xdocs.excludes=
##############
# General Forrest properties
# The URL to start crawling from
#project.start-uri=linkmap.html
# Set logging level for messages printed to the console
# (DEBUG, INFO, WARN, ERROR, FATAL_ERROR)
#project.debuglevel=ERROR
# Max memory to allocate to Java
#forrest.maxmemory=64m
# Any other arguments to pass to the JVM. For example, to run on an X-less
# server, set to -Djava.awt.headless=true
#forrest.jvmargs=
# The bugtracking URL - the issue number will be appended
#project.bugtracking-url=http://issues.apache.org/bugzilla/show_bug.cgi?id=
#project.bugtracking-url=http://issues.apache.org/jira/browse/
# The issues list as rss
#project.issues-rss-url=
#I18n Property. Based on the locale request for the browser.
#If you want to use it for static site then modify the JVM system.language
# and run once per language
#project.i18n=true
# The names of plugins that are required to build the project
# comma separated list (no spaces)
# You can request a specific version by appending "-VERSION" to the end of
# the plugin name. If you exclude a version number the latest released version
# will be used, however, be aware that this may be a development version. In
# a production environment it is recomended that you specify a known working
# version.
# Run "forrest available-plugins" for a list of plug-ins currently available
#project.required.plugins=org.apache.forrest.plugin.output.pdf
# Proxy configuration
# proxy.host=
# proxy.port=

View File

@ -0,0 +1,72 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Apache Lucene - Building and Installing the Basic Demo</title>
</head>
<body>
<h1>Apache Lucene - Building and Installing the Basic Demo</h1>
<div id="minitoc-area">
<ul class="minitoc">
<li><a href="#About%20this%20Document">About this Document</a></li>
<li><a href="#About%20the%20Demo">About the Demo</a></li>
<li><a href="#Setting%20your%20CLASSPATH">Setting your CLASSPATH</a></li>
<li><a href="#Indexing%20Files">Indexing Files</a></li>
<li><a href="#About%20the%20code...">About the code...</a></li>
</ul>
</div>
<a name="N10013" id="N10013"></a><a name="About this Document"></a>
<h2 class="boxed">About this Document</h2>
<div class="section">
<p>This document is intended as a "getting started" guide to using and running
the Lucene demos. It walks you through some basic installation and
configuration.</p>
</div>
<a name="N1001C" id="N1001C"></a><a name="About the Demo"></a>
<h2 class="boxed">About the Demo</h2>
<div class="section">
<p>The Lucene command-line demo code consists of an application that
demonstrates various functionalities of Lucene and how you can add Lucene to
your applications.</p>
</div>
<a name="N10025" id="N10025"></a><a name="Setting your CLASSPATH"></a>
<h2 class="boxed">Setting your CLASSPATH</h2>
<div class="section">
<p>First, you should <a href=
"http://www.apache.org/dyn/closer.cgi/lucene/java/">download</a> the latest
Lucene distribution and then extract it to a working directory.</p>
<p>You need three JARs: the Lucene JAR, the common analysis JAR, and the Lucene
demo JAR. You should see the Lucene JAR file in the core/ directory you created
when you extracted the archive -- it should be named something like
<span class="codefrag">lucene-core-{version}.jar</span>. You should also see
files called <span class=
"codefrag">lucene-analyzers-common-{version}.jar</span> and <span class=
"codefrag">lucene-demo-{version}.jar</span> under analysis/common/ and demo/,
respectively.</p>
<p>Put all three of these files in your Java CLASSPATH.</p>
</div>
<a name="N10041" id="N10041"></a><a name="Indexing Files"></a>
<h2 class="boxed">Indexing Files</h2>
<div class="section">
<p>Once you've gotten this far you're probably itching to go. Let's <b>build an
index!</b> Assuming you've set your CLASSPATH correctly, just type:</p>
<pre>
java org.apache.lucene.demo.IndexFiles -docs {path-to-lucene}/src
</pre>
This will produce a subdirectory called <span class="codefrag">index</span>
which will contain an index of all of the Lucene source code.
<p>To <b>search the index</b> type:</p>
<pre>
java org.apache.lucene.demo.SearchFiles
</pre>
You'll be prompted for a query. Type in a swear word and press the enter key.
You'll see that the Lucene developers are very well mannered and get no
results. Now try entering the word "string". That should return a whole bunch
of documents. The results will page at every tenth result and ask you whether
you want more results.</div>
<a name="N1005C" id="N1005C"></a><a name="About the code..."></a>
<h2 class="boxed">About the code...</h2>
<div class="section">
<p><a href="demo2.html">read on&gt;&gt;&gt;</a></p>
</div>
</body>
</html>

148
lucene/site/html/demo2.html Normal file
View File

@ -0,0 +1,148 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Apache Lucene - Basic Demo Sources Walk-through</title>
</head>
<body>
<h1>Apache Lucene - Basic Demo Sources Walk-through</h1>
<div id="minitoc-area">
<ul class="minitoc">
<li><a href="#About%20the%20Code">About the Code</a></li>
<li><a href="#Location%20of%20the%20source">Location of the source</a></li>
<li><a href="#IndexFiles">IndexFiles</a></li>
<li><a href="#Searching%20Files">Searching Files</a></li>
</ul>
</div>
<a name="N10013" id="N10013"></a><a name="About the Code"></a>
<h2 class="boxed">About the Code</h2>
<div class="section">
<p>In this section we walk through the sources behind the command-line Lucene
demo: where to find them, their parts and their function. This section is
intended for Java developers wishing to understand how to use Lucene in their
applications.</p>
</div>
<a name="N1001C" id="N1001C"></a><a name="Location of the source"></a>
<h2 class="boxed">Location of the source</h2>
<div class="section">
<p>NOTE: to examine the sources, you need to download and extract a source
checkout of Lucene: (lucene-{version}-src.zip).</p>
<p>Relative to the directory created when you extracted Lucene, you should see
a directory called <span class="codefrag">lucene/demo/</span>. This is the root
for the Lucene demo. Under this directory is <span class=
"codefrag">src/java/org/apache/lucene/demo/</span>. This is where all the Java
sources for the demo live.</p>
<p>Within this directory you should see the <span class=
"codefrag">IndexFiles.java</span> class we executed earlier. Bring it up in
<span class="codefrag">vi</span> or your editor of choice and let's take a look
at it.</p>
</div>
<a name="N10037" id="N10037"></a><a name="IndexFiles" id="IndexFiles"></a>
<h2 class="boxed">IndexFiles</h2>
<div class="section">
<p>As we discussed in the previous walk-through, the <a href=
"api/demo/org/apache/lucene/demo/IndexFiles.html">IndexFiles</a> class creates
a Lucene Index. Let's take a look at how it does this.</p>
<p>The <span class="codefrag">main()</span> method parses the command-line
parameters, then in preparation for instantiating <a href=
"api/core/org/apache/lucene/index/IndexWriter.html">IndexWriter</a>, opens a
<a href="api/core/org/apache/lucene/store/Directory.html">Directory</a> and
instantiates <a href=
"api/analyzers-common/org/apache/lucene/analysis/standard/StandardAnalyzer.html">
StandardAnalyzer</a> and <a href=
"api/core/org/apache/lucene/index/IndexWriterConfig.html">IndexWriterConfig</a>.</p>
<p>The value of the <span class="codefrag">-index</span> command-line parameter
is the name of the filesystem directory where all index information should be
stored. If <span class="codefrag">IndexFiles</span> is invoked with a relative
path given in the <span class="codefrag">-index</span> command-line parameter,
or if the <span class="codefrag">-index</span> command-line parameter is not
given, causing the default relative index path "<span class=
"codefrag">index</span>" to be used, the index path will be created as a
subdirectory of the current working directory (if it does not already exist).
On some platforms, the index path may be created in a different directory (such
as the user's home directory).</p>
<p>The <span class="codefrag">-docs</span> command-line parameter value is the
location of the directory containing files to be indexed.</p>
<p>The <span class="codefrag">-update</span> command-line parameter tells
<span class="codefrag">IndexFiles</span> not to delete the index if it already
exists. When <span class="codefrag">-update</span> is not given, <span class=
"codefrag">IndexFiles</span> will first wipe the slate clean before indexing
any documents.</p>
<p>Lucene <a href=
"api/core/org/apache/lucene/store/Directory.html">Directory</a>s are used by
the <span class="codefrag">IndexWriter</span> to store information in the
index. In addition to the <a href=
"api/core/org/apache/lucene/store/FSDirectory.html">FSDirectory</a>
implementation we are using, there are several other <span class=
"codefrag">Directory</span> subclasses that can write to RAM, to databases,
etc.</p>
<p>Lucene <a href=
"api/core/org/apache/lucene/analysis/Analyzer.html">Analyzer</a>s are
processing pipelines that break up text into indexed tokens, a.k.a. terms, and
optionally perform other operations on these tokens, e.g. downcasing, synonym
insertion, filtering out unwanted tokens, etc. The <span class=
"codefrag">Analyzer</span> we are using is <span class=
"codefrag">StandardAnalyzer</span>, which creates tokens using the Word Break
rules from the Unicode Text Segmentation algorithm specified in <a href=
"http://unicode.org/reports/tr29/">Unicode Standard Annex #29</a>; converts
tokens to lowercase; and then filters out stopwords. Stopwords are common
language words such as articles (a, an, the, etc.) and other tokens that may
have less value for searching. It should be noted that there are different
rules for every language, and you should use the proper analyzer for each.
Lucene currently provides Analyzers for a number of different languages (see
the javadocs under <a href=
"api/analyzers-common/org/apache/lucene/analysis/">lucene/analysis/common/src/java/org/apache/lucene/analysis</a>).</p>
<p>The <span class="codefrag">IndexWriterConfig</span> instance holds all
configuration for <span class="codefrag">IndexWriter</span>. For example, we
set the <span class="codefrag">OpenMode</span> to use here based on the value
of the <span class="codefrag">-update</span> command-line parameter.</p>
<p>Looking further down in the file, after <span class=
"codefrag">IndexWriter</span> is instantiated, you should see the <span class=
"codefrag">indexDocs()</span> code. This recursive function crawls the
directories and creates <a href=
"api/core/org/apache/lucene/document/Document.html">Document</a> objects. The
<span class="codefrag">Document</span> is simply a data object to represent the
text content from the file as well as its creation time and location. These
instances are added to the <span class="codefrag">IndexWriter</span>. If the
<span class="codefrag">-update</span> command-line parameter is given, the
<span class="codefrag">IndexWriter</span> <span class=
"codefrag">OpenMode</span> will be set to <span class=
"codefrag">OpenMode.CREATE_OR_APPEND</span>, and rather than adding documents
to the index, the <span class="codefrag">IndexWriter</span> will
<strong>update</strong> them in the index by attempting to find an
already-indexed document with the same identifier (in our case, the file path
serves as the identifier); deleting it from the index if it exists; and then
adding the new document to the index.</p>
</div>
<a name="N100DB" id="N100DB"></a><a name="Searching Files"></a>
<h2 class="boxed">Searching Files</h2>
<div class="section">
<p>The <a href=
"api/demo/org/apache/lucene/demo/SearchFiles.html">SearchFiles</a> class is
quite simple. It primarily collaborates with an <a href=
"api/core/org/apache/lucene/search/IndexSearcher.html">IndexSearcher</a>,
<a href=
"api/analyzers-common/org/apache/lucene/analysis/standard/StandardAnalyzer.html">
StandardAnalyzer</a> (which is used in the <a href=
"api/demo/org/apache/lucene/demo/IndexFiles.html">IndexFiles</a> class as well)
and a <a href=
"api/core/org/apache/lucene/queryParser/QueryParser.html">QueryParser</a>. The
query parser is constructed with an analyzer used to interpret your query text
in the same way the documents are interpreted: finding word boundaries,
downcasing, and removing useless words like 'a', 'an' and 'the'. The <a href=
"api/core/org/apache/lucene/search/Query.html">Query</a> object contains the
results from the <a href=
"api/core/org/apache/lucene/queryParser/QueryParser.html">QueryParser</a> which
is passed to the searcher. Note that it's also possible to programmatically
construct a rich <a href=
"api/core/org/apache/lucene/search/Query.html">Query</a> object without using
the query parser. The query parser just enables decoding the <a href=
"queryparsersyntax.html">Lucene query syntax</a> into the corresponding
<a href="api/core/org/apache/lucene/search/Query.html">Query</a> object.</p>
<p><span class="codefrag">SearchFiles</span> uses the <span class=
"codefrag">IndexSearcher.search(query,n)</span> method that returns <a href=
"api/core/org/apache/lucene/search/TopDocs.html">TopDocs</a> with max
<span class="codefrag">n</span> hits. The results are printed in pages, sorted
by score (i.e. relevance).</p>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1,235 +1,10 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.9">
<meta name="Forrest-skin-name" content="lucene">
<title>
Apache Lucene - Scoring
</title>
<link type="text/css" href="skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
<link type="text/css" href="skin/profile.css" rel="stylesheet">
<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
<link rel="shortcut icon" href="images/favicon.ico">
<title>Apache Lucene - Scoring</title>
</head>
<body onload="init()">
<script type="text/javascript">ndeSetTextSize();</script>
<div id="top">
<!--+
|breadtrail
+-->
<div class="breadtrail">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://lucene.apache.org/">Lucene</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
</div>
<!--+
|header
+-->
<div class="header">
<!--+
|start group logo
+-->
<div class="grouplogo">
<a href="http://lucene.apache.org/"><img class="logoImage" alt="Lucene" src="http://www.apache.org/images/asf_logo_simple.png" title="Apache Lucene"></a>
</div>
<!--+
|end group logo
+-->
<!--+
|start Project Logo
+-->
<div class="projectlogo">
<a href="http://lucene.apache.org/java/"><img class="logoImage" alt="Lucene" src="http://lucene.apache.org/images/lucene_green_300.gif" title="Apache Lucene is a high-performance, full-featured text search engine library written entirely in
Java. It is a technology suitable for nearly any application that requires full-text search, especially cross-platform."></a>
</div>
<!--+
|end Project Logo
+-->
<!--+
|start Search
+-->
<div class="searchbox">
<form action="http://search.lucidimagination.com/p:lucene" method="get" class="roundtopsmall">
<input onFocus="getBlank (this, 'Search the site with Lucene');" size="25" name="q" id="query" type="text" value="Search the site with Lucene">&nbsp;
<input name="Search" value="Search" type="submit">
</form>
<div style="position: relative; top: -5px; left: -10px">Powered by <a href="http://www.lucidimagination.com" style="color: #033268">Lucid Imagination</a>
</div>
</div>
<!--+
|end search
+-->
<!--+
|start Tabs
+-->
<ul id="tabs">
<li class="current">
<a class="selected" href="http://lucene.apache.org/java/docs/">Main</a>
</li>
<li>
<a class="unselected" href="http://wiki.apache.org/lucene-java">Wiki</a>
</li>
<li class="current">
<a class="selected" href="index.html">Lucene 4.0 Documentation</a>
</li>
</ul>
<!--+
|end Tabs
+-->
</div>
</div>
<div id="main">
<div id="publishedStrip">
<!--+
|start Subtabs
+-->
<div id="level2tabs"></div>
<!--+
|end Endtabs
+-->
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<!--+
|breadtrail
+-->
<div class="breadtrail">
&nbsp;
</div>
<!--+
|start Menu, mainarea
+-->
<!--+
|start Menu
+-->
<div id="menu">
<div onclick="SwitchMenu('menu_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">Documentation</div>
<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
<div class="menuitem">
<a href="index.html">Overview</a>
</div>
<div class="menuitem">
<a href="changes/Changes.html">Changes</a>
</div>
<div onclick="SwitchMenu('menu_1.1.3', 'skin/')" id="menu_1.1.3Title" class="menutitle">Javadocs</div>
<div id="menu_1.1.3" class="menuitemgroup">
<div class="menuitem">
<a href="api/core/index.html">Core</a>
</div>
<div class="menuitem">
<a href="api/analyzers-common/index.html">Analysis: Common</a>
</div>
<div class="menuitem">
<a href="api/analyzers-kuromoji/index.html">Analysis: Kuromoji (Japanese)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-morfologik/index.html">Analysis: Morfologik (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-phonetic/index.html">Analysis: Phonetic</a>
</div>
<div class="menuitem">
<a href="api/analyzers-smartcn/index.html">Analysis: Smart Chinese</a>
</div>
<div class="menuitem">
<a href="api/analyzers-stempel/index.html">Analysis: Stempel (Polish)</a>
</div>
<div class="menuitem">
<a href="api/analyzers-uima/index.html">Analysis: UIMA</a>
</div>
<div class="menuitem">
<a href="api/benchmark/index.html">Benchmark</a>
</div>
<div class="menuitem">
<a href="api/demo/index.html">Demo</a>
</div>
<div class="menuitem">
<a href="api/facet/index.html">Faceting</a>
</div>
<div class="menuitem">
<a href="api/grouping/index.html">Grouping</a>
</div>
<div class="menuitem">
<a href="api/highlighter/index.html">Highlighter</a>
</div>
<div class="menuitem">
<a href="api/join/index.html">Join</a>
</div>
<div class="menuitem">
<a href="api/memory/index.html">Memory</a>
</div>
<div class="menuitem">
<a href="api/misc/index.html">Miscellaneous</a>
</div>
<div class="menuitem">
<a href="api/queries/index.html">Queries</a>
</div>
<div class="menuitem">
<a href="api/queryparser/index.html">Query Parsers</a>
</div>
<div class="menuitem">
<a href="api/sandbox/index.html">Sandbox</a>
</div>
<div class="menuitem">
<a href="api/spatial/index.html">Spatial</a>
</div>
<div class="menuitem">
<a href="api/suggest/index.html">Suggest / Spellcheck</a>
</div>
<div class="menuitem">
<a href="api/test-framework/index.html">Test Framework</a>
</div>
</div>
<div class="menuitem">
<a href="systemrequirements.html">System Requirements</a>
</div>
<div class="menuitem">
<a href="contributions.html">Contributions</a>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java/LuceneFAQ">FAQ</a>
</div>
<div class="menuitem">
<a href="fileformats.html">File Formats</a>
</div>
<div class="menuitem">
<a href="gettingstarted.html">Getting Started</a>
</div>
<div class="menuitem">
<a href="queryparsersyntax.html">Query Syntax</a>
</div>
<div class="menupage">
<div class="menupagetitle">Scoring</div>
</div>
<div class="menuitem">
<a href="http://wiki.apache.org/lucene-java">Wiki</a>
</div>
<div class="menuitem">
<a href="http://lucene.apache.org/privacy.html">Privacy Policy</a>
</div>
</div>
<div id="credit"></div>
<div id="roundbottom">
<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
<!--+
|alternative credits
+-->
<div id="credit2"></div>
</div>
<!--+
|end Menu
+-->
<!--+
|start content
+-->
<div id="content">
<h1>
Apache Lucene - Scoring
</h1>
<body>
<h1>Apache Lucene - Scoring</h1>
<div id="minitoc-area">
<ul class="minitoc">
<li>
@ -297,10 +72,10 @@ document.write("Last Published: " + document.lastModified);
<a href="http://wiki.apache.org/lucene-java/InformationRetrieval">Lucene Wiki IR references</a>.
</p>
<p>The rest of this document will cover <a href="#Scoring">Scoring</a> basics and how to change your
<a href="api/core/org/apache/lucene/search/Similarity.html">Similarity</a>. Next it will cover ways you can
<a href="core/org/apache/lucene/search/Similarity.html">Similarity</a>. Next it will cover ways you can
customize the Lucene internals in <a href="#Changing your Scoring -- Expert Level">Changing your Scoring
-- Expert Level</a> which gives details on implementing your own
<a href="api/core/org/apache/lucene/search/Query.html">Query</a> class and related functionality. Finally, we
<a href="core/org/apache/lucene/search/Query.html">Query</a> class and related functionality. Finally, we
will finish up with some reference material in the <a href="#Appendix">Appendix</a>.
</p>
</div>
@ -314,21 +89,21 @@ document.write("Last Published: " + document.lastModified);
and the Lucene
<a href="fileformats.html">file formats</a>
before continuing on with this section.) It is also assumed that readers know how to use the
<a href="api/core/org/apache/lucene/search/Searcher.html#explain(Query query, int doc)">Searcher.explain(Query query, int doc)</a> functionality,
<a href="core/org/apache/lucene/search/Searcher.html#explain(Query query, int doc)">Searcher.explain(Query query, int doc)</a> functionality,
which can go a long way in informing why a score is returned.
</p>
<a name="N10059"></a><a name="Fields and Documents"></a>
<h3 class="boxed">Fields and Documents</h3>
<p>In Lucene, the objects we are scoring are
<a href="api/core/org/apache/lucene/document/Document.html">Documents</a>. A Document is a collection
<a href="core/org/apache/lucene/document/Document.html">Documents</a>. A Document is a collection
of
<a href="api/core/org/apache/lucene/document/Field.html">Fields</a>. Each Field has semantics about how
<a href="core/org/apache/lucene/document/Field.html">Fields</a>. Each Field has semantics about how
it is created and stored (i.e. tokenized, untokenized, raw data, compressed, etc.) It is important to
note that Lucene scoring works on Fields and then combines the results to return Documents. This is
important because two Documents with the exact same content, but one having the content in two Fields
and the other in one Field will return different scores for the same query due to length normalization
(assumming the
<a href="api/core/org/apache/lucene/search/DefaultSimilarity.html">DefaultSimilarity</a>
<a href="core/org/apache/lucene/search/DefaultSimilarity.html">DefaultSimilarity</a>
on the Fields).
</p>
<a name="N1006E"></a><a name="Score Boosting"></a>
@ -339,21 +114,21 @@ document.write("Last Published: " + document.lastModified);
<li>
<b>Document level boosting</b>
- while indexing - by calling
<a href="api/core/org/apache/lucene/document/Document.html#setBoost(float)">document.setBoost()</a>
<a href="core/org/apache/lucene/document/Document.html#setBoost(float)">document.setBoost()</a>
before a document is added to the index.
</li>
<li>
<b>Document's Field level boosting</b>
- while indexing - by calling
<a href="api/core/org/apache/lucene/document/Fieldable.html#setBoost(float)">field.setBoost()</a>
<a href="core/org/apache/lucene/document/Fieldable.html#setBoost(float)">field.setBoost()</a>
before adding a field to the document (and before adding the document to the index).
</li>
<li>
<b>Query level boosting</b>
- during search, by setting a boost on a query clause, calling
<a href="api/core/org/apache/lucene/search/Query.html#setBoost(float)">Query.setBoost()</a>.
<a href="core/org/apache/lucene/search/Query.html#setBoost(float)">Query.setBoost()</a>.
</li>
</ul>
@ -374,52 +149,52 @@ document.write("Last Published: " + document.lastModified);
<p>This composition of 1-byte representation of norms
(that is, indexing time multiplication of field boosts &amp; doc boost &amp; field-length-norm)
is nicely described in
<a href="api/core/org/apache/lucene/document/Fieldable.html#setBoost(float)">Fieldable.setBoost()</a>.
<a href="core/org/apache/lucene/document/Fieldable.html#setBoost(float)">Fieldable.setBoost()</a>.
</p>
<p>Encoding and decoding of the resulted float norm in a single byte are done by the
static methods of the class Similarity:
<a href="api/core/org/apache/lucene/search/Similarity.html#encodeNorm(float)">encodeNorm()</a> and
<a href="api/core/org/apache/lucene/search/Similarity.html#decodeNorm(byte)">decodeNorm()</a>.
<a href="core/org/apache/lucene/search/Similarity.html#encodeNorm(float)">encodeNorm()</a> and
<a href="core/org/apache/lucene/search/Similarity.html#decodeNorm(byte)">decodeNorm()</a>.
Due to loss of precision, it is not guaranteed that decode(encode(x)) = x,
e.g. decode(encode(0.89)) = 0.75.
At scoring (search) time, this norm is brought into the score of document
as <b>norm(t, d)</b>, as shown by the formula in
<a href="api/core/org/apache/lucene/search/Similarity.html">Similarity</a>.
<a href="core/org/apache/lucene/search/Similarity.html">Similarity</a>.
</p>
<a name="N100B1"></a><a name="Understanding the Scoring Formula"></a>
<h3 class="boxed">Understanding the Scoring Formula</h3>
<p>
This scoring formula is described in the
<a href="api/core/org/apache/lucene/search/Similarity.html">Similarity</a> class. Please take the time to study this formula, as it contains much of the information about how the
<a href="core/org/apache/lucene/search/Similarity.html">Similarity</a> class. Please take the time to study this formula, as it contains much of the information about how the
basics of Lucene scoring work, especially the
<a href="api/core/org/apache/lucene/search/TermQuery.html">TermQuery</a>.
<a href="core/org/apache/lucene/search/TermQuery.html">TermQuery</a>.
</p>
<a name="N100C2"></a><a name="The Big Picture"></a>
<h3 class="boxed">The Big Picture</h3>
<p>OK, so the tf-idf formula and the
<a href="api/core/org/apache/lucene/search/Similarity.html">Similarity</a>
<a href="core/org/apache/lucene/search/Similarity.html">Similarity</a>
is great for understanding the basics of Lucene scoring, but what really drives Lucene scoring are
the use and interactions between the
<a href="api/core/org/apache/lucene/search/Query.html">Query</a> classes, as created by each application in
<a href="core/org/apache/lucene/search/Query.html">Query</a> classes, as created by each application in
response to a user's information need.
</p>
<p>In this regard, Lucene offers a wide variety of <a href="api/core/org/apache/lucene/search/Query.html">Query</a> implementations, most of which are in the
<a href="api/core/org/apache/lucene/search/package-summary.html">org.apache.lucene.search</a> package.
<p>In this regard, Lucene offers a wide variety of <a href="core/org/apache/lucene/search/Query.html">Query</a> implementations, most of which are in the
<a href="core/org/apache/lucene/search/package-summary.html">org.apache.lucene.search</a> package.
These implementations can be combined in a wide variety of ways to provide complex querying
capabilities along with
information about where matches took place in the document collection. The <a href="#Query Classes">Query</a>
section below
highlights some of the more important Query classes. For information on the other ones, see the
<a href="api/core/org/apache/lucene/search/package-summary.html">package summary</a>. For details on implementing
<a href="core/org/apache/lucene/search/package-summary.html">package summary</a>. For details on implementing
your own Query class, see <a href="#Changing your Scoring -- Expert Level">Changing your Scoring --
Expert Level</a> below.
</p>
<p>Once a Query has been created and submitted to the
<a href="api/core/org/apache/lucene/search/IndexSearcher.html">IndexSearcher</a>, the scoring process
<a href="core/org/apache/lucene/search/IndexSearcher.html">IndexSearcher</a>, the scoring process
begins. (See the <a href="#Appendix">Appendix</a> Algorithm section for more notes on the process.) After some infrastructure setup,
control finally passes to the <a href="api/core/org/apache/lucene/search/Weight.html">Weight</a> implementation and its
<a href="api/core/org/apache/lucene/search/Scorer.html">Scorer</a> instance. In the case of any type of
<a href="api/core/org/apache/lucene/search/BooleanQuery.html">BooleanQuery</a>, scoring is handled by the
control finally passes to the <a href="core/org/apache/lucene/search/Weight.html">Weight</a> implementation and its
<a href="core/org/apache/lucene/search/Scorer.html">Scorer</a> instance. In the case of any type of
<a href="core/org/apache/lucene/search/BooleanQuery.html">BooleanQuery</a>, scoring is handled by the
<a href="http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java?view=log">BooleanWeight2</a>
(link goes to ViewVC BooleanQuery java code which contains the BooleanWeight2 inner class) or
<a href="http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java?view=log">BooleanWeight</a>
@ -429,7 +204,7 @@ document.write("Last Published: " + document.lastModified);
Assuming the use of the BooleanWeight2, a
BooleanScorer2 is created by bringing together
all of the
<a href="api/core/org/apache/lucene/search/Scorer.html">Scorer</a>s from the sub-clauses of the BooleanQuery.
<a href="core/org/apache/lucene/search/Scorer.html">Scorer</a>s from the sub-clauses of the BooleanQuery.
When the BooleanScorer2 is asked to score it delegates its work to an internal Scorer based on the type
of clauses in the Query. This internal Scorer essentially loops over the sub scorers and sums the scores
provided by each scorer while factoring in the coord() score.
@ -438,14 +213,14 @@ document.write("Last Published: " + document.lastModified);
<a name="N10112"></a><a name="Query Classes"></a>
<h3 class="boxed">Query Classes</h3>
<p>For information on the Query Classes, refer to the
<a href="api/core/org/apache/lucene/search/package-summary.html#query">search package javadocs</a>
<a href="core/org/apache/lucene/search/package-summary.html#query">search package javadocs</a>
</p>
<a name="N1011F"></a><a name="Changing Similarity"></a>
<h3 class="boxed">Changing Similarity</h3>
<p>One of the ways of changing the scoring characteristics of Lucene is to change the similarity factors. For information on
how to do this, see the
<a href="api/core/org/apache/lucene/search/package-summary.html#changingSimilarity">search package javadocs</a>
<a href="core/org/apache/lucene/search/package-summary.html#changingSimilarity">search package javadocs</a>
</p>
</div>
@ -454,7 +229,7 @@ document.write("Last Published: " + document.lastModified);
<div class="section">
<p>At a much deeper level, one can affect scoring by implementing their own Query classes (and related scoring classes.) To learn more
about how to do this, refer to the
<a href="api/core/org/apache/lucene/search/package-summary.html#scoring">search package javadocs</a>
<a href="core/org/apache/lucene/search/package-summary.html#scoring">search package javadocs</a>
</p>
</div>
@ -468,19 +243,19 @@ document.write("Last Published: " + document.lastModified);
<p>This section is mostly notes on stepping through the Scoring process and serves as
fertilizer for the earlier sections.</p>
<p>In the typical search application, a
<a href="api/core/org/apache/lucene/search/Query.html">Query</a>
<a href="core/org/apache/lucene/search/Query.html">Query</a>
is passed to the
<a href="api/core/org/apache/lucene/search/Searcher.html">Searcher</a>
<a href="core/org/apache/lucene/search/Searcher.html">Searcher</a>
, beginning the scoring process.
</p>
<p>Once inside the Searcher, a
<a href="api/core/org/apache/lucene/search/Collector.html">Collector</a>
<a href="core/org/apache/lucene/search/Collector.html">Collector</a>
is used for the scoring and sorting of the search results.
These important objects are involved in a search:
<ol>
<li>The
<a href="api/core/org/apache/lucene/search/Weight.html">Weight</a>
<a href="core/org/apache/lucene/search/Weight.html">Weight</a>
object of the Query. The Weight object is an internal representation of the Query that
allows the Query to be reused by the Searcher.
</li>
@ -488,12 +263,12 @@ document.write("Last Published: " + document.lastModified);
<li>The Searcher that initiated the call.</li>
<li>A
<a href="api/core/org/apache/lucene/search/Filter.html">Filter</a>
<a href="core/org/apache/lucene/search/Filter.html">Filter</a>
for limiting the result set. Note, the Filter may be null.
</li>
<li>A
<a href="api/core/org/apache/lucene/search/Sort.html">Sort</a>
<a href="core/org/apache/lucene/search/Sort.html">Sort</a>
object for specifying how to sort the results if the standard score based sort method is not
desired.
</li>
@ -504,44 +279,44 @@ document.write("Last Published: " + document.lastModified);
<p> Assuming we are not sorting (since sorting doesn't
effect the raw Lucene score),
we call one of the search methods of the Searcher, passing in the
<a href="api/core/org/apache/lucene/search/Weight.html">Weight</a>
<a href="core/org/apache/lucene/search/Weight.html">Weight</a>
object created by Searcher.createWeight(Query),
<a href="api/core/org/apache/lucene/search/Filter.html">Filter</a>
<a href="core/org/apache/lucene/search/Filter.html">Filter</a>
and the number of results we want. This method
returns a
<a href="api/core/org/apache/lucene/search/TopDocs.html">TopDocs</a>
<a href="core/org/apache/lucene/search/TopDocs.html">TopDocs</a>
object, which is an internal collection of search results.
The Searcher creates a
<a href="api/core/org/apache/lucene/search/TopScoreDocCollector.html">TopScoreDocCollector</a>
<a href="core/org/apache/lucene/search/TopScoreDocCollector.html">TopScoreDocCollector</a>
and passes it along with the Weight, Filter to another expert search method (for more on the
<a href="api/core/org/apache/lucene/search/Collector.html">Collector</a>
<a href="core/org/apache/lucene/search/Collector.html">Collector</a>
mechanism, see
<a href="api/core/org/apache/lucene/search/Searcher.html">Searcher</a>
<a href="core/org/apache/lucene/search/Searcher.html">Searcher</a>
.) The TopDocCollector uses a
<a href="api/core/org/apache/lucene/util/PriorityQueue.html">PriorityQueue</a>
<a href="core/org/apache/lucene/util/PriorityQueue.html">PriorityQueue</a>
to collect the top results for the search.
</p>
<p>If a Filter is being used, some initial setup is done to determine which docs to include. Otherwise,
we ask the Weight for
a
<a href="api/core/org/apache/lucene/search/Scorer.html">Scorer</a>
<a href="core/org/apache/lucene/search/Scorer.html">Scorer</a>
for the
<a href="api/core/org/apache/lucene/index/IndexReader.html">IndexReader</a>
<a href="core/org/apache/lucene/index/IndexReader.html">IndexReader</a>
of the current searcher and we proceed by
calling the score method on the
<a href="api/core/org/apache/lucene/search/Scorer.html">Scorer</a>
<a href="core/org/apache/lucene/search/Scorer.html">Scorer</a>
.
</p>
<p>At last, we are actually going to score some documents. The score method takes in the Collector
(most likely the TopScoreDocCollector or TopFieldCollector) and does its business.
Of course, here is where things get involved. The
<a href="api/core/org/apache/lucene/search/Scorer.html">Scorer</a>
<a href="core/org/apache/lucene/search/Scorer.html">Scorer</a>
that is returned by the
<a href="api/core/org/apache/lucene/search/Weight.html">Weight</a>
<a href="core/org/apache/lucene/search/Weight.html">Weight</a>
object depends on what type of Query was submitted. In most real world applications with multiple
query terms,
the
<a href="api/core/org/apache/lucene/search/Scorer.html">Scorer</a>
<a href="core/org/apache/lucene/search/Scorer.html">Scorer</a>
is going to be a
<a href="http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanScorer2.java?view=log">BooleanScorer2</a>
(see the section on customizing your scoring for info on changing this.)
@ -558,42 +333,6 @@ document.write("Last Published: " + document.lastModified);
your internal Scorer is most likely a DisjunctionSumScorer, which essentially combines the scorers
from the sub scorers of the OR'd terms.</p>
</div>
</div>
<!--+
|end content
+-->
<div class="clearboth">&nbsp;</div>
</div>
<div id="footer">
<!--+
|start bottomstrip
+-->
<div class="lastmodified">
<script type="text/javascript"><!--
document.write("Last Published: " + document.lastModified);
// --></script>
</div>
<div class="copyright">
Copyright &copy;
2006 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
</div>
<!--+
|end bottomstrip
+-->
</div>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-94576-12']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>

View File

@ -1,57 +0,0 @@
# Copyright 2002-2005 The Apache Software Foundation or its licensors,
# as applicable.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#=======================================================================
# CatalogManager.properties for Catalog Entity Resolver.
#
# This is the default properties file for your project.
# This facilitates local configuration of application-specific catalogs.
# If you have defined any local catalogs, then they will be loaded
# before Forrest's core catalogs.
#
# See the Apache Forrest documentation:
# http://forrest.apache.org/docs/your-project.html
# http://forrest.apache.org/docs/validation.html
# verbosity:
# The level of messages for status/debug (messages go to standard output).
# The setting here is for your own local catalogs.
# The verbosity of Forrest's core catalogs is controlled via
# main/webapp/WEB-INF/cocoon.xconf
#
# The following messages are provided ...
# 0 = none
# 1 = ? (... not sure yet)
# 2 = 1+, Loading catalog, Resolved public, Resolved system
# 3 = 2+, Catalog does not exist, resolvePublic, resolveSystem
# 10 = 3+, List all catalog entries when loading a catalog
# (Cocoon also logs the "Resolved public" messages.)
verbosity=1
# catalogs ... list of additional catalogs to load
# (Note that Apache Forrest will automatically load its own default catalog
# from main/webapp/resources/schema/catalog.xcat)
# Use either full pathnames or relative pathnames.
# pathname separator is always semi-colon (;) regardless of operating system
# directory separator is always slash (/) regardless of operating system
catalogs=../resources/schema/catalog.xcat
# relative-catalogs
# If false, relative catalog URIs are made absolute with respect to the
# base URI of the CatalogManager.properties file. This setting only
# applies to catalog URIs obtained from the catalogs property in the
# CatalogManager.properties file
# Example: relative-catalogs=[yes|no]
relative-catalogs=no

View File

@ -1,322 +0,0 @@
<?xml version="1.0"?>
<!--
Copyright 2002-2004 The Apache Software Foundation or its licensors,
as applicable.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--+
| This is the Apache Cocoon command line configuration file.
| Here you give the command line interface details of where
| to find various aspects of your Cocoon installation.
|
| If you wish, you can also use this file to specify the URIs
| that you wish to generate.
|
| The current configuration information in this file is for
| building the Cocoon documentation. Therefore, all links here
| are relative to the build context dir, which, in the build.xml
| file, is set to ${build.context}
|
| Options:
| verbose: increase amount of information presented
| to standard output (default: false)
| follow-links: whether linked pages should also be
| generated (default: true)
| precompile-only: precompile sitemaps and XSP pages, but
| do not generate any pages (default: false)
| confirm-extensions: check the mime type for the generated page
| and adjust filename and links extensions
| to match the mime type
| (e.g. text/html->.html)
|
| Note: Whilst using an xconf file to configure the Cocoon
| Command Line gives access to more features, the use of
| command line parameters is more stable, as there are
| currently plans to improve the xconf format to allow
| greater flexibility. If you require a stable and
| consistent method for accessing the CLI, it is recommended
| that you use the command line parameters to configure
| the CLI. See documentation at:
| http://cocoon.apache.org/2.1/userdocs/offline/
| http://wiki.apache.org/cocoon/CommandLine
|
+-->
<cocoon verbose="true"
follow-links="true"
precompile-only="false"
confirm-extensions="false">
<!--+
| The context directory is usually the webapp directory
| containing the sitemap.xmap file.
|
| The config file is the cocoon.xconf file.
|
| The work directory is used by Cocoon to store temporary
| files and cache files.
|
| The destination directory is where generated pages will
| be written (assuming the 'simple' mapper is used, see
| below)
+-->
<context-dir>.</context-dir>
<config-file>WEB-INF/cocoon.xconf</config-file>
<work-dir>../tmp/cocoon-work</work-dir>
<dest-dir>../site</dest-dir>
<!--+
| A checksum file can be used to store checksums for pages
| as they are generated. When the site is next generated,
| files will not be written if their checksum has not changed.
| This means that it will be easier to detect which files
| need to be uploaded to a server, using the timestamp.
+-->
<!-- <checksums-uri>build/work/checksums</checksums-uri>-->
<!--+
| Broken link reporting options:
| Report into a text file, one link per line:
| <broken-links type="text" report="filename"/>
| Report into an XML file:
| <broken-links type="xml" report="filename"/>
| Ignore broken links (default):
| <broken-links type="none"/>
|
| Two attributes to this node specify whether a page should
| be generated when an error has occured. 'generate' specifies
| whether a page should be generated (default: true) and
| extension specifies an extension that should be appended
| to the generated page's filename (default: none)
|
| Using this, a quick scan through the destination directory
| will show broken links, by their filename extension.
+-->
<broken-links type="xml"
file="../brokenlinks.xml"
generate="false"
extension=".error"
show-referrers="true"/>
<!--+
| Load classes at startup. This is necessary for generating
| from sites that use SQL databases and JDBC.
| The <load-class> element can be repeated if multiple classes
| are needed.
+-->
<!--
<load-class>org.firebirdsql.jdbc.Driver</load-class>
-->
<!--+
| Configures logging.
| The 'log-kit' parameter specifies the location of the log kit
| configuration file (usually called logkit.xconf.
|
| Logger specifies the logging category (for all logging prior
| to other Cocoon logging categories taking over)
|
| Available log levels are:
| DEBUG: prints all level of log messages.
| INFO: prints all level of log messages except DEBUG
| ones.
| WARN: prints all level of log messages except DEBUG
| and INFO ones.
| ERROR: prints all level of log messages except DEBUG,
| INFO and WARN ones.
| FATAL_ERROR: prints only log messages of this level
+-->
<!-- <logging log-kit="WEB-INF/logkit.xconf" logger="cli" level="ERROR" /> -->
<!--+
| Specifies the filename to be appended to URIs that
| refer to a directory (i.e. end with a forward slash).
+-->
<default-filename>index.html</default-filename>
<!--+
| Specifies a user agent string to the sitemap when
| generating the site.
|
| A generic term for a web browser is "user agent". Any
| user agent, when connecting to a web server, will provide
| a string to identify itself (e.g. as Internet Explorer or
| Mozilla). It is possible to have Cocoon serve different
| content depending upon the user agent string provided by
| the browser. If your site does this, then you may want to
| use this <user-agent> entry to provide a 'fake' user agent
| to Cocoon, so that it generates the correct version of your
| site.
|
| For most sites, this can be ignored.
+-->
<!--
<user-agent>Cocoon Command Line Environment 2.1</user-agent>
-->
<!--+
| Specifies an accept string to the sitemap when generating
| the site.
| User agents can specify to an HTTP server what types of content
| (by mime-type) they are able to receive. E.g. a browser may be
| able to handle jpegs, but not pngs. The HTTP accept header
| allows the server to take the browser's capabilities into account,
| and only send back content that it can handle.
|
| For most sites, this can be ignored.
+-->
<accept>*/*</accept>
<!--+
| Specifies which URIs should be included or excluded, according
| to wildcard patterns.
|
| These includes/excludes are only relevant when you are following
| links. A link URI must match an include pattern (if one is given)
| and not match an exclude pattern, if it is to be followed by
| Cocoon. It can be useful, for example, where there are links in
| your site to pages that are not generated by Cocoon, such as
| references to api-documentation.
|
| By default, all URIs are included. If both include and exclude
| patterns are specified, a URI is first checked against the
| include patterns, and then against the exclude patterns.
|
| Multiple patterns can be given, using muliple include or exclude
| nodes.
|
| The order of the elements is not significant, as only the first
| successful match of each category is used.
|
| Currently, only the complete source URI can be matched (including
| any URI prefix). Future plans include destination URI matching
| and regexp matching. If you have requirements for these, contact
| dev@cocoon.apache.org.
+-->
<exclude pattern="**/"/>
<exclude pattern="**apidocs**"/>
<exclude pattern="api/**"/>
<exclude pattern="**/api/contrib**"/>
<exclude pattern="**changes/Contrib-Changes.html"/>
<exclude pattern="**changes/Changes.html"/>
<!--
This is a workaround for FOR-284 "link rewriting broken when
linking to xml source views which contain site: links".
See the explanation there and in declare-broken-site-links.xsl
-->
<exclude pattern="site:**"/>
<exclude pattern="ext:**"/>
<exclude pattern="**/site:**"/>
<exclude pattern="**/ext:**"/>
<!-- Exclude tokens used in URLs to ASF mirrors (interpreted by a CGI) -->
<exclude pattern="[preferred]/**"/>
<exclude pattern="[location]"/>
<!-- <include-links extension=".html"/>-->
<!--+
| <uri> nodes specify the URIs that should be generated, and
| where required, what should be done with the generated pages.
| They describe the way the URI of the generated file is created
| from the source page's URI. There are three ways that a generated
| file URI can be created: append, replace and insert.
|
| The "type" attribute specifies one of (append|replace|insert):
|
| append:
| Append the generated page's URI to the end of the source URI:
|
| <uri type="append" src-prefix="documents/" src="index.html"
| dest="build/dest/"/>
|
| This means that
| (1) the "documents/index.html" page is generated
| (2) the file will be written to "build/dest/documents/index.html"
|
| replace:
| Completely ignore the generated page's URI - just
| use the destination URI:
|
| <uri type="replace" src-prefix="documents/" src="index.html"
| dest="build/dest/docs.html"/>
|
| This means that
| (1) the "documents/index.html" page is generated
| (2) the result is written to "build/dest/docs.html"
| (3) this works only for "single" pages - and not when links
| are followed
|
| insert:
| Insert generated page's URI into the destination
| URI at the point marked with a * (example uses fictional
| zip protocol)
|
| <uri type="insert" src-prefix="documents/" src="index.html"
| dest="zip://*.zip/page.html"/>
|
| This means that
| (1)
|
| In any of these scenarios, if the dest attribute is omitted,
| the value provided globally using the <dest-dir> node will
| be used instead.
+-->
<!--
<uri type="replace"
src-prefix="samples/"
src="hello-world/hello.html"
dest="build/dest/hello-world.html"/>
-->
<!--+
| <uri> nodes can be grouped together in a <uris> node. This
| enables a group of URIs to share properties. The following
| properties can be set for a group of URIs:
| * follow-links: should pages be crawled for links
| * confirm-extensions: should file extensions be checked
| for the correct mime type
| * src-prefix: all source URIs should be
| pre-pended with this prefix before
| generation. The prefix is not
| included when calculating the
| destination URI
| * dest: the base destination URI to be
| shared by all pages in this group
| * type: the method to be used to calculate
| the destination URI. See above
| section on <uri> node for details.
|
| Each <uris> node can have a name attribute. When a name
| attribute has been specified, the -n switch on the command
| line can be used to tell Cocoon to only process the URIs
| within this URI group. When no -n switch is given, all
| <uris> nodes are processed. Thus, one xconf file can be
| used to manage multiple sites.
+-->
<!--
<uris name="mirrors" follow-links="false">
<uri type="append" src="mirrors.html"/>
</uris>
-->
<!--+
| File containing URIs (plain text, one per line).
+-->
<!--
<uri-file>uris.txt</uri-file>
-->
</cocoon>

View File

@ -1,3 +0,0 @@
#Forrest generates UTF-8 by default, but these httpd servers are
#ignoring the meta http-equiv charset tags
AddDefaultCharset off

View File

@ -1,350 +0,0 @@
<?xml version="1.0"?>
<document>
<header>
<title>
Apache Lucene - Contributions
</title>
</header>
<properties>
<author email="carlson@apache.org">
Peter Carlson
</author>
</properties>
<body>
<section id="Overview">
<title>Overview</title>
<p>This page lists external Lucene resources. If you have
written something that should be included, please post all
relevant information to one of the mailing lists. Nothing
listed here is directly supported by the Lucene
developers, so if you encounter any problems with any of
this software, please use the author's contact information
to get help.</p>
<p>If you are looking for information on contributing patches or other improvements to Lucene, see
<a href="http://wiki.apache.org/lucene-java/HowToContribute">How To Contribute</a> on the Lucene Wiki.</p>
</section>
<section id="Lucene Tools">
<title>Lucene Tools</title>
<p>
Software that works with Lucene indices.
</p>
<section id="Luke"><title>Luke</title>
<table>
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://www.getopt.org/luke/">
http://www.getopt.org/luke/
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Andrzej Bialecki
</td>
</tr>
</table>
</section>
<section id="LIMO (Lucene Index Monitor)">
<title>LIMO (Lucene Index Monitor)</title>
<table>
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://limo.sf.net/">
http://limo.sf.net/
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Julien Nioche
</td>
</tr>
</table>
</section>
</section>
<section id="Lucene Document Converters">
<title>Lucene Document Converters</title>
<p>
Lucene requires information you want to index to be
converted into a Document class. Here are
contributions for various solutions that convert different
content types to Lucene's Document classes.
</p>
<section id="XML Document #1">
<title>XML Document #1</title>
<table>
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://marc.theaimsgroup.com/?l=lucene-dev&amp;m=100723333506246&amp;w=2">
http://marc.theaimsgroup.com/?l=lucene-dev&amp;m=100723333506246&amp;w=2
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Philip Ogren - ogren@mayo.edu
</td>
</tr>
</table>
</section>
<section id="XML Document #2">
<title>XML Document #2</title>
<table>
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://www.mail-archive.com/lucene-user@jakarta.apache.org/msg00346.html">
http://www.mail-archive.com/lucene-user@jakarta.apache.org/msg00346.html
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Peter Carlson - carlson@bookandhammer.com
</td>
</tr>
</table>
</section>
<section id="PDF Box">
<title>PDF Box</title>
<table>
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://www.pdfbox.org/">
http://www.pdfbox.org/
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Ben Litchfield - ben@csh.rit.edu
</td>
</tr>
</table>
</section>
<section id="XPDF - PDF Document Conversion">
<title>XPDF - PDF Document Conversion</title>
<table>
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://www.foolabs.com/xpdf">
http://www.foolabs.com/xpdf
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
N/A
</td>
</tr>
</table>
</section>
<section id="PDFTextStream -- PDF text and metadata extraction">
<title>PDFTextStream -- PDF text and metadata extraction</title>
<table>
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://snowtide.com">
http://snowtide.com
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
N/A
</td>
</tr>
</table>
</section>
<section id="PJ Classic &amp; PJ Professional - PDF Document Conversion">
<title>PJ Classic &amp; PJ Professional - PDF Document Conversion</title>
<table>
<tr>
<th width="%1">
URL
</th>
<td>
<a href=" http://www.etymon.com/">
http://www.etymon.com/
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
N/A
</td>
</tr>
</table>
</section>
</section>
<section id="Miscellaneous">
<title>Miscellaneous</title>
<p>
</p>
<section id="Arabic Analyzer for Java">
<title>Arabic Analyzer for Java</title>
<table>
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://savannah.nongnu.org/projects/aramorph">
http://savannah.nongnu.org/projects/aramorph
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Pierrick Brihaye
</td>
</tr>
</table>
</section>
<section id="Phonetix">
<title>Phonetix</title>
<table>
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://www.companywebstore.de/tangentum/mirror/en/products/phonetix/index.html">
http://www.companywebstore.de/tangentum/mirror/en/products/phonetix/index.html
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
tangentum technologies
</td>
</tr>
</table>
</section>
<section id="ejIndex - JBoss MBean for Lucene">
<title>ejIndex - JBoss MBean for Lucene</title>
<p>
</p>
<table>
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://ejindex.sourceforge.net/">
http://ejindex.sourceforge.net/
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Andy Scholz
</td>
</tr>
</table>
</section>
<section id="JavaCC">
<title>JavaCC</title>
<table>
<tr>
<th width="%1">
URL
</th>
<td>
<a href="https://javacc.dev.java.net/">
https://javacc.dev.java.net/
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Sun Microsystems (java.net)
</td>
</tr>
</table>
</section>
<section id="LuSQL">
<title>LuSQL - Index databases with Lucene</title>
<table>
<tr>
<th width="%1">
URL
</th>
<td>
<a href="http://lab.cisti-icist.nrc-cnrc.gc.ca/cistilabswiki/index.php/LuSql">
http://lab.cisti-icist.nrc-cnrc.gc.ca/cistilabswiki/index.php/LuSql
</a>
</td>
</tr>
<tr>
<th width="%1">
author
</th>
<td>
Glen Newton
</td>
</tr>
</table>
</section>
</section>
</body>
</document>

View File

@ -1,79 +0,0 @@
<?xml version="1.0"?>
<document>
<header>
<title>
Apache Lucene - Building and Installing the Basic Demo
</title>
</header>
<properties>
<author email="acoliver@apache.org">Andrew C. Oliver</author>
</properties>
<body>
<section id="About this Document"><title>About this Document</title>
<p>
This document is intended as a "getting started" guide to using and running the Lucene demos.
It walks you through some basic installation and configuration.
</p>
</section>
<section id="About the Demo"><title>About the Demo</title>
<p>
The Lucene command-line demo code consists of an application that demonstrates various
functionalities of Lucene and how you can add Lucene to your applications.
</p>
</section>
<section id="Setting your CLASSPATH"><title>Setting your CLASSPATH</title>
<p>
First, you should <a href="http://www.apache.org/dyn/closer.cgi/lucene/java/">download</a> the
latest Lucene distribution and then extract it to a working directory.
</p>
<p>
You need three JARs: the Lucene JAR, the common analysis JAR, and the Lucene demo JAR. You should
see the Lucene JAR file in the core/ directory you created when you extracted the archive -- it
should be named something like <code>lucene-core-{version}.jar</code>. You should also see files
called <code>lucene-analyzers-common-{version}.jar</code> and <code>lucene-demo-{version}.jar</code>
under analysis/common/ and demo/, respectively.
</p>
<p>
Put all three of these files in your Java CLASSPATH.
</p>
</section>
<section id="Indexing Files"><title>Indexing Files</title>
<p>
Once you've gotten this far you're probably itching to go. Let's <b>build an index!</b> Assuming
you've set your CLASSPATH correctly, just type:
<pre>
java org.apache.lucene.demo.IndexFiles -docs {path-to-lucene}/src
</pre>
This will produce a subdirectory called <code>index</code> which will contain an index of all of the
Lucene source code.
</p>
<p>
To <b>search the index</b> type:
<pre>
java org.apache.lucene.demo.SearchFiles
</pre>
You'll be prompted for a query. Type in a swear word and press the enter key. You'll see that the
Lucene developers are very well mannered and get no results. Now try entering the word "string".
That should return a whole bunch of documents. The results will page at every tenth result and ask
you whether you want more results.
</p>
</section>
<section id="About the code..."><title>About the code...</title>
<p>
<a href="demo2.html">read on&gt;&gt;&gt;</a>
</p>
</section>
</body>
</document>

View File

@ -1,154 +0,0 @@
<?xml version="1.0"?>
<document>
<header>
<title>
Apache Lucene - Basic Demo Sources Walk-through
</title>
</header>
<properties>
<author email="acoliver@apache.org">Andrew C. Oliver</author>
</properties>
<body>
<section id="About the Code"><title>About the Code</title>
<p>
In this section we walk through the sources behind the command-line Lucene demo: where to find them,
their parts and their function. This section is intended for Java developers wishing to understand
how to use Lucene in their applications.
</p>
</section>
<section id="Location of the source"><title>Location of the source</title>
<p>
NOTE: to examine the sources, you need to download and extract a source checkout of
Lucene: (lucene-{version}-src.zip).
</p>
<p>
Relative to the directory created when you extracted Lucene, you
should see a directory called <code>lucene/demo/</code>. This is the root for the Lucene
demo. Under this directory is <code>src/java/org/apache/lucene/demo/</code>. This is where all
the Java sources for the demo live.
</p>
<p>
Within this directory you should see the <code>IndexFiles.java</code> class we executed earlier.
Bring it up in <code>vi</code> or your editor of choice and let's take a look at it.
</p>
</section>
<section id="IndexFiles"><title>IndexFiles</title>
<p>
As we discussed in the previous walk-through, the <a
href="api/demo/org/apache/lucene/demo/IndexFiles.html">IndexFiles</a> class creates a Lucene
Index. Let's take a look at how it does this.
</p>
<p>
The <code>main()</code> method parses the command-line parameters, then in preparation for
instantiating <a href="api/core/org/apache/lucene/index/IndexWriter.html">IndexWriter</a>, opens a
<a href="api/core/org/apache/lucene/store/Directory.html">Directory</a> and instantiates
<a href="api/analyzers-common/org/apache/lucene/analysis/standard/StandardAnalyzer.html"
>StandardAnalyzer</a> and
<a href="api/core/org/apache/lucene/index/IndexWriterConfig.html">IndexWriterConfig</a>.
</p>
<p>
The value of the <code>-index</code> command-line parameter is the name of the filesystem directory
where all index information should be stored. If <code>IndexFiles</code> is invoked with a
relative path given in the <code>-index</code> command-line parameter, or if the <code>-index</code>
command-line parameter is not given, causing the default relative index path "<code>index</code>"
to be used, the index path will be created as a subdirectory of the current working directory
(if it does not already exist). On some platforms, the index path may be created in a different
directory (such as the user's home directory).
</p>
<p>
The <code>-docs</code> command-line parameter value is the location of the directory containing
files to be indexed.
</p>
<p>
The <code>-update</code> command-line parameter tells <code>IndexFiles</code> not to delete the
index if it already exists. When <code>-update</code> is not given, <code>IndexFiles</code> will
first wipe the slate clean before indexing any documents.
</p>
<p>
Lucene <a href="api/core/org/apache/lucene/store/Directory.html">Directory</a>s are used by the
<code>IndexWriter</code> to store information in the index. In addition to the
<a href="api/core/org/apache/lucene/store/FSDirectory.html">FSDirectory</a> implementation we are using,
there are several other <code>Directory</code> subclasses that can write to RAM, to databases, etc.
</p>
<p>
Lucene <a href="api/core/org/apache/lucene/analysis/Analyzer.html">Analyzer</a>s are processing pipelines
that break up text into indexed tokens, a.k.a. terms, and optionally perform other operations on these
tokens, e.g. downcasing, synonym insertion, filtering out unwanted tokens, etc. The <code>Analyzer</code>
we are using is <code>StandardAnalyzer</code>, which creates tokens using the Word Break rules from the
Unicode Text Segmentation algorithm specified in <a href="http://unicode.org/reports/tr29/">Unicode
Standard Annex #29</a>; converts tokens to lowercase; and then filters out stopwords. Stopwords are
common language words such as articles (a, an, the, etc.) and other tokens that may have less value for
searching. It should be noted that there are different rules for every language, and you should use the
proper analyzer for each. Lucene currently provides Analyzers for a number of different languages (see
the javadocs under
<a href="api/analyzers-common/org/apache/lucene/analysis/"
>lucene/analysis/common/src/java/org/apache/lucene/analysis</a>).
</p>
<p>
The <code>IndexWriterConfig</code> instance holds all configuration for <code>IndexWriter</code>. For
example, we set the <code>OpenMode</code> to use here based on the value of the <code>-update</code>
command-line parameter.
</p>
<p>
Looking further down in the file, after <code>IndexWriter</code> is instantiated, you should see the
<code>indexDocs()</code> code. This recursive function crawls the directories and creates
<a href="api/core/org/apache/lucene/document/Document.html">Document</a> objects. The
<code>Document</code> is simply a data object to represent the text content from the file as well as
its creation time and location. These instances are added to the <code>IndexWriter</code>. If
the <code>-update</code> command-line parameter is given, the <code>IndexWriter</code>
<code>OpenMode</code> will be set to <code>OpenMode.CREATE_OR_APPEND</code>, and rather than
adding documents to the index, the <code>IndexWriter</code> will <strong>update</strong> them
in the index by attempting to find an already-indexed document with the same identifier (in our
case, the file path serves as the identifier); deleting it from the index if it exists; and then
adding the new document to the index.
</p>
</section>
<section id="Searching Files"><title>Searching Files</title>
<p>
The <a href="api/demo/org/apache/lucene/demo/SearchFiles.html">SearchFiles</a> class is
quite simple. It primarily collaborates with an
<a href="api/core/org/apache/lucene/search/IndexSearcher.html">IndexSearcher</a>,
<a href="api/analyzers-common/org/apache/lucene/analysis/standard/StandardAnalyzer.html"
>StandardAnalyzer</a> (which is used in the
<a href="api/demo/org/apache/lucene/demo/IndexFiles.html">IndexFiles</a> class as well)
and a <a href="api/core/org/apache/lucene/queryParser/QueryParser.html">QueryParser</a>. The
query parser is constructed with an analyzer used to interpret your query text in the same way the
documents are interpreted: finding word boundaries, downcasing, and removing useless words like
'a', 'an' and 'the'. The <a href="api/core/org/apache/lucene/search/Query.html">Query</a>
object contains the results from the
<a href="api/core/org/apache/lucene/queryParser/QueryParser.html">QueryParser</a> which is passed
to the searcher. Note that it's also possible to programmatically construct a rich
<a href="api/core/org/apache/lucene/search/Query.html">Query</a> object without using the query
parser. The query parser just enables decoding the <a href="queryparsersyntax.html">Lucene query
syntax</a> into the corresponding <a href="api/core/org/apache/lucene/search/Query.html">Query</a>
object.
</p>
<p>
<code>SearchFiles</code> uses the <code>IndexSearcher.search(query,n)</code> method that returns
<a href="api/core/org/apache/lucene/search/TopDocs.html">TopDocs</a> with max <code>n</code> hits.
The results are printed in pages, sorted by score (i.e. relevance).
</p>
</section>
</body>
</document>

File diff suppressed because it is too large Load Diff

View File

@ -1,41 +0,0 @@
<?xml version="1.0"?>
<document>
<header>
<title>
Apache Lucene - Getting Started Guide
</title>
</header>
<properties>
<author email="acoliver@apache.org">Andrew C. Oliver</author>
</properties>
<body>
<section id="Getting Started">
<title>Getting Started</title>
<p>
This document is intended as a "getting started" guide. It has three audiences: first-time users
looking to install Apache Lucene in their application; developers looking to modify or base
the applications they develop on Lucene; and developers looking to become involved in and contribute
to the development of Lucene. This document is written in tutorial and walk-through format. The
goal is to help you "get started". It does not go into great depth on some of the conceptual or
inner details of Lucene.
</p>
<p>
Each section listed below builds on one another. More advanced users
may wish to skip sections.
</p>
<ul>
<li><a href="demo.html">About the command-line Lucene demo and its usage</a>. This section
is intended for anyone who wants to use the command-line Lucene demo.</li>
<li><a href="demo2.html">About the sources and implementation for the command-line Lucene
demo</a>. This section walks through the implementation details (sources) of the
command-line Lucene demo. This section is intended for developers.</li>
</ul>
</section>
</body>
</document>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 696 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Some files were not shown because too many files have changed in this diff Show More