You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@lucene.apache.org by mh...@apache.org on 2007/10/09 23:45:28 UTC

svn commit: r583307 [5/6] - in /lucene/java/trunk/contrib/xml-query-parser: ./ docs/ docs/img/

Added: lucene/java/trunk/contrib/xml-query-parser/docs/LuceneCoreQuery.dtd.org.html
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/xml-query-parser/docs/LuceneCoreQuery.dtd.org.html?rev=583307&view=auto
==============================================================================
--- lucene/java/trunk/contrib/xml-query-parser/docs/LuceneCoreQuery.dtd.org.html (added)
+++ lucene/java/trunk/contrib/xml-query-parser/docs/LuceneCoreQuery.dtd.org.html Tue Oct  9 14:45:27 2007
@@ -0,0 +1,405 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html> <head>
+<meta http-equiv='CONTENT-TYPE' content='text/html; charset=UTF-8' />
+<link rel='StyleSheet' href='DTDDocStyle.css' type='text/css' media='screen' />
+<title>Core Lucene</title>
+</head><body>
+<p class='DTDSource'><b><code>LuceneCoreQuery.dtd</code></b>: <a href='LuceneCoreQuery.dtd.html'>Elements</a> - <a href='LuceneCoreQuery.dtd.entities.html'>Entities</a> - <a href='LuceneCoreQuery.dtd.org.html'>Source</a> | <a href='intro.html'>Intro</a> - <a href='elementsIndex.html'>Index</a><br /><a href='index.html' target='_top'>FRAMES</a>&nbsp;/&nbsp;<a href='LuceneCoreQuery.dtd.org.html' target='_top'>NO FRAMES</a></p><pre id='dtd_source'><span class="dtd_comment">&lt;!--</span>
+<span class="dtd_comment">    &lt;h3&gt;Background&lt;/h3&gt;</span>
+<span class="dtd_comment">    This DTD describes the XML syntax used to perform advanced searches using the core Lucene search engine. The motivation behind the XML query syntax is:</span>
+<span class="dtd_comment">    &lt;ol&gt;</span>
+<span class="dtd_comment">    &lt;li&gt;To open up Lucene functionality to clients other than Java&lt;/li&gt;</span>
+<span class="dtd_comment">    &lt;li&gt;To offer a form of expressing queries that can easily be</span>
+<span class="dtd_comment">        &lt;ul&gt;</span>
+<span class="dtd_comment">            &lt;li&gt;Persisted for logging/auditing purposes&lt;/li&gt;</span>
+<span class="dtd_comment">            &lt;li&gt;Changed by editing text query templates (XSLT) without requiring a recompile/redeploy of applications&lt;/li&gt;</span>
+<span class="dtd_comment">            &lt;li&gt;Serialized across networks (without requiring Java bytecode for Query logic deployed on clients)&lt;/li&gt;</span>
+<span class="dtd_comment">        &lt;/ul&gt;</span>
+<span class="dtd_comment">    &lt;/li&gt;</span>
+<span class="dtd_comment">    &lt;li&gt;To provide a shorthand way of expressing query logic which echos the logical tree structure of query objects more closely than reading procedural Java query construction code&lt;/li&gt;</span>
+<span class="dtd_comment">    &lt;li&gt;To bridge the growing gap between Lucene query/filtering functionality and the set of functionality accessible throught the standard Lucene QueryParser syntax&lt;/li&gt;</span>
+<span class="dtd_comment">    &lt;li&gt;To provide a simply extensible syntax that does not require complex parser skills such as knowledge of JavaCC syntax&lt;/li&gt;</span>
+<span class="dtd_comment">    &lt;/ol&gt;</span>
+<span class="dtd_comment">    </span>
+<span class="dtd_comment">    </span>
+<span class="dtd_comment">    &lt;h3&gt;Syntax overview&lt;/h3&gt;</span>
+<span class="dtd_comment">    Search syntax consists of two types of elements:</span>
+<span class="dtd_comment">    &lt;ul&gt;</span>
+<span class="dtd_comment">    &lt;li&gt;&lt;i&gt;Queries&lt;/i&gt;&lt;/li&gt;</span>
+<span class="dtd_comment">    &lt;li&gt;&lt;i&gt;Filters&lt;/i&gt;&lt;/li&gt;</span>
+<span class="dtd_comment">    &lt;/ul&gt;</span>
+
+<span class="dtd_comment">    &lt;h4&gt;Queries&lt;/h4&gt;</span>
+<span class="dtd_comment">    The root of any XML search must be a &lt;i&gt;Query&lt;/i&gt; type element used to select content.</span>
+<span class="dtd_comment">    Queries typically score matches on documents using a number of different factors in order to provide relevant results first. </span>
+<span class="dtd_comment">    One common example of a query tag is the &lt;a href=&quot;#UserQuery&quot;&gt;UserQuery&lt;/a&gt; element which uses the standard </span>
+<span class="dtd_comment">    Lucene QueryParser to parse Google-style search syntax provided by end users.</span>
+<span class="dtd_comment">    </span>
+<span class="dtd_comment">    &lt;h4&gt;Filters&lt;/h4&gt;</span>
+<span class="dtd_comment">    Unlike Queries, &lt;i&gt;Filters&lt;/i&gt; are not used to select or score content - they are simply used to filter &lt;i&gt;Query&lt;/i&gt; output (see &lt;a href=&quot;#FilteredQuery&quot;&gt;FilteredQuery&lt;/a&gt; for an example use of query filtering).</span>
+<span class="dtd_comment">    Because Filters simply offer a yes/no decision for each document in the index their output can be efficiently cached in memory as a &lt;a href=&quot;http://java.sun.com/j2se/1.4.2/docs/api/java/util/BitSet.html&quot;&gt;Bitset&lt;/a&gt; for</span>
+<span class="dtd_comment">    subsequent reuse (see &lt;a href=&quot;#CachedFilter&quot;&gt;CachedFilter&lt;/a&gt; tag).</span>
+
+<span class="dtd_comment">    &lt;h4&gt;Nesting elements&lt;/h4&gt;</span>
+<span class="dtd_comment">    Many of the the elements can nest other elements to produce queries/filters of an arbitrary depth and complexity. </span>
+<span class="dtd_comment">    The &lt;a href=&quot;#BooleanQuery&quot;&gt;BooleanQuery&lt;/a&gt; element is one such example which provides a means for combining other queries (including other BooleanQueries) using Boolean </span>
+<span class="dtd_comment">    logic to determine mandatory or optional elements. </span>
+
+<span class="dtd_comment">    </span>
+<span class="dtd_comment">    &lt;h3&gt;Advanced topics&lt;/h3&gt;    </span>
+<span class="dtd_comment">    &lt;h4&gt;Advanced positional testing - span queries&lt;/h4&gt;</span>
+<span class="dtd_comment">    The &lt;i&gt;SpanQuery&lt;/i&gt; class of queries allow for complex positional tests which not only look for certain combinations of words but in particular </span>
+<span class="dtd_comment">    positions in relation to each other and the documents containing them.</span>
+<span class="dtd_comment">    </span>
+<span class="dtd_comment">    </span>
+<span class="dtd_comment">    CoreParser.java is the Java class that encapsulates this parser behaviour.</span>
+<span class="dtd_comment">    </span>
+<span class="dtd_comment">    </span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@title</span><span class="dtd_comment"> Core Lucene  </span>
+<span class="dtd_comment">--&gt;</span>
+
+<span class="dtd_comment">&lt;!-- </span><span class="dtd_dtddoc_tag">@hidden</span><span class="dtd_comment"> Define core types of XML elements --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">coreSpanQueries</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot;SpanOr|SpanNear|SpanOrTerms|SpanFirst|SpanNot|SpanTerm&quot;</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">coreQueries</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot;BooleanQuery|UserQuery|FilteredQuery|TermQuery|TermsQuery|MatchAllDocsQuery|ConstantScoreQuery&quot;</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">coreFilters</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot;RangeFilter|CachedFilter&quot;</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">&gt;</span>
+
+<span class="dtd_comment">&lt;!-- </span><span class="dtd_dtddoc_tag">@hidden</span><span class="dtd_comment"> Allow for extensions --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">extendedSpanQueries1</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot; &quot;</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">extendedQueries1</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot; &quot;</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">extendedFilters1</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot; &quot;</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">&gt;</span>
+
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">spanQueries</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot;%coreSpanQueries;%extendedSpanQueries1;&quot;</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">queries</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot;%coreQueries;|%spanQueries;%extendedQueries1;&quot;</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">&gt;</span>
+
+
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ENTITY</span><span class="dtd_plain"> % </span><span class="dtd_attribute_name">filters</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot;%coreFilters;%extendedFilters1;&quot;</span><span class="dtd_plain"> </span><span class="dtd_tag_symbols">&gt;</span>
+
+<span class="dtd_comment">&lt;!--</span>
+<span class="dtd_comment">    BooleanQuerys implement Boolean logic which controls how multiple Clauses should be interpreted.</span>
+<span class="dtd_comment">    Some clauses may represent optional Query criteria while others represent mandatory criteria.   </span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
+<span class="dtd_comment">            &lt;em&gt;Find articles about banks, preferably talking about mergers but nothing to do with &quot;sumitomo&quot;&lt;/em&gt;</span>
+<span class="dtd_comment">            %             </span>
+<span class="dtd_comment">            &lt;BooleanQuery fieldName=&quot;contents&quot;&gt;</span>
+<span class="dtd_comment">                 &lt;Clause occurs=&quot;should&quot;&gt;</span>
+<span class="dtd_comment">                      &lt;TermQuery&gt;merger&lt;/TermQuery&gt;</span>
+<span class="dtd_comment">                 &lt;/Clause&gt;</span>
+<span class="dtd_comment">                 &lt;Clause occurs=&quot;mustnot&quot;&gt;</span>
+<span class="dtd_comment">                      &lt;TermQuery&gt;sumitomo&lt;/TermQuery&gt;</span>
+<span class="dtd_comment">                 &lt;/Clause&gt;</span>
+<span class="dtd_comment">                 &lt;Clause occurs=&quot;must&quot;&gt;</span>
+<span class="dtd_comment">                      &lt;TermQuery&gt;bank&lt;/TermQuery&gt;</span>
+<span class="dtd_comment">                 &lt;/Clause&gt;</span>
+<span class="dtd_comment">            &lt;/BooleanQuery&gt;</span>
+
+<span class="dtd_comment">             %</span>
+<span class="dtd_comment">--&gt;</span><span class="dtd_plain"> </span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">BooleanQuery</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">Clause</span><span class="dtd_plain">)+</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- Optional boost for matches on this query. Values &gt; 1 --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">BooleanQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">boost</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot;1.0&quot;</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- fieldName can optionally be defined here as a default attribute used by all child elements --&gt;</span><span class="dtd_plain"> </span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">BooleanQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">fieldName</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#IMPLIED</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- The &quot;Coordination factor&quot; rewards documents that contain more of the optional clauses in this list. This flag can be used to turn off this factor. --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">BooleanQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">disableCoord</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">true</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">false</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">&quot;false&quot;</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- The minimum number of optional clauses that should be present in any one document before it is considered to be a match. --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">BooleanQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">minimumNumberShouldMatch</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot;0&quot;</span><span class="dtd_tag_symbols">&gt;</span>
+
+<span class="dtd_comment">&lt;!-- NOTE: &quot;Clause&quot; tag has 2 modes of use - inside &lt;BooleanQuery&gt; in which case only &quot;query&quot; types can be</span>
+<span class="dtd_comment">    child elements - while in a &lt;BooleanFilter&gt; clause only &quot;filter&quot; types can be contained.</span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@hidden</span><span class="dtd_comment"> TODO: Change BooleanFilterBuilder and BooleanQueryBuilder to auto-wrap choice of query or filters. This type of</span>
+<span class="dtd_comment">          code already exists in CachedFilter so could be reused.</span>
+<span class="dtd_comment">--&gt;</span><span class="dtd_plain"> </span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">Clause</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">queries</span><span class="dtd_plain">;|%</span><span class="dtd_attribute_name">filters</span><span class="dtd_plain">;)</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- Controls if the clause is optional (should), mandatory (must) or unacceptable (mustNot) --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">Clause</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">occurs</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">should</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">must</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">mustnot</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">&quot;should&quot;</span><span class="dtd_tag_symbols">&gt;</span>
+
+
+<span class="dtd_comment">&lt;!-- Caches any nested query or filter in an LRU (Least recently used) Cache. Cached queries, like filters, are turned into</span>
+<span class="dtd_comment">    Bitsets at a cost of 1 bit per document in the index. The memory cost of a cached query/filter is therefore numberOfDocsinIndex/8 bytes.</span>
+<span class="dtd_comment">    Queries that are cached as filters obviously retain none of the scoring information associated with results - they retain just</span>
+<span class="dtd_comment">    a Boolean yes/no record of which documents matched. </span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
+<span class="dtd_comment">            &lt;em&gt;Search for documents about banks from the last 10 years - caching the commonly-used &quot;last 10 year&quot; filter as a BitSet in </span>
+<span class="dtd_comment">    RAM to eliminate the cost of building this filter from disk for every query&lt;/em&gt;</span>
+<span class="dtd_comment">            %             </span>
+<span class="dtd_comment">            &lt;FilteredQuery&gt;</span>
+<span class="dtd_comment">               &lt;Query&gt;</span>
+<span class="dtd_comment">                  &lt;UserQuery&gt;bank&lt;/UserQuery&gt;</span>
+<span class="dtd_comment">               &lt;/Query&gt; </span>
+<span class="dtd_comment">               &lt;Filter&gt;</span>
+<span class="dtd_comment">                  &lt;CachedFilter&gt;</span>
+<span class="dtd_comment">                     &lt;RangeFilter fieldName=&quot;date&quot; lowerTerm=&quot;19970101&quot; upperTerm=&quot;20070101&quot;/&gt;</span>
+<span class="dtd_comment">                  &lt;/CachedFilter&gt;</span>
+<span class="dtd_comment">               &lt;/Filter&gt;    </span>
+<span class="dtd_comment">            &lt;/FilteredQuery&gt;</span>
+<span class="dtd_comment">             %</span>
+<span class="dtd_comment">    </span>
+<span class="dtd_comment">    --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">CachedFilter</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">queries</span><span class="dtd_plain">;|%</span><span class="dtd_attribute_name">filters</span><span class="dtd_plain">;)</span><span class="dtd_tag_symbols">&gt;</span>
+
+
+
+<span class="dtd_comment">&lt;!--</span>
+<span class="dtd_comment">Passes content directly through to the standard LuceneQuery parser see &quot;Lucene Query Syntax&quot;</span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
+<span class="dtd_comment">            &lt;em&gt;Search for documents about John Smith or John Doe using standard LuceneQuerySyntax&lt;/em&gt;</span>
+<span class="dtd_comment">            %             </span>
+<span class="dtd_comment">               &lt;UserQuery&gt;&quot;John Smith&quot; OR &quot;John Doe&quot;&lt;/UserQuery&gt;</span>
+<span class="dtd_comment">             %</span>
+<span class="dtd_comment">        </span>
+<span class="dtd_comment">--&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">UserQuery</span><span class="dtd_plain"> (</span><span class="dtd_keyword">#PCDATA</span><span class="dtd_plain">)</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- Optional boost for matches on this query. Values &gt; 1 --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">UserQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">boost</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot;1.0&quot;</span><span class="dtd_tag_symbols">&gt;</span>
+
+<span class="dtd_comment">&lt;!-- A query which is used to match all documents. This has a couple of uses: </span>
+<span class="dtd_comment">    &lt;ol&gt;</span>
+<span class="dtd_comment">    &lt;li&gt; as a Clause in a BooleanQuery who's only other clause</span>
+<span class="dtd_comment">    is a &quot;mustNot&quot; match (Lucene requires at least one positive clause) and..&lt;/li&gt;</span>
+<span class="dtd_comment">    &lt;li&gt; in a FilteredQuery where a Filter tag is effectively being </span>
+<span class="dtd_comment">    used to select content rather than it's usual role of filtering the results of a query.&lt;/li&gt;</span>
+<span class="dtd_comment">    &lt;/ol&gt;</span>
+<span class="dtd_comment">    </span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
+<span class="dtd_comment">            &lt;em&gt;Effectively use a Filter as a query &lt;/em&gt;</span>
+<span class="dtd_comment">            %             </span>
+<span class="dtd_comment">               &lt;FilteredQuery&gt;</span>
+<span class="dtd_comment">                 &lt;Query&gt;</span>
+<span class="dtd_comment">                    &lt;MatchAllDocsQuery/&gt;</span>
+<span class="dtd_comment">                 &lt;/Query&gt;</span>
+<span class="dtd_comment">                 &lt;Filter&gt;</span>
+<span class="dtd_comment">                     &lt;RangeFilter fieldName=&quot;date&quot; lowerTerm=&quot;19870409&quot; upperTerm=&quot;19870412&quot;/&gt;</span>
+<span class="dtd_comment">                 &lt;/Filter&gt;  </span>
+<span class="dtd_comment">               &lt;/FilteredQuery&gt;          </span>
+<span class="dtd_comment">           %</span>
+<span class="dtd_comment">    </span>
+<span class="dtd_comment">--&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">MatchAllDocsQuery</span><span class="dtd_plain"> </span><span class="dtd_keyword">EMPTY</span><span class="dtd_tag_symbols">&gt;</span>
+
+<span class="dtd_comment">&lt;!-- a single term query - no analysis is done of the child text</span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
+<span class="dtd_comment">            &lt;em&gt;Match on a primary key&lt;/em&gt;</span>
+<span class="dtd_comment">            %             </span>
+<span class="dtd_comment">               &lt;TermQuery fieldName=&quot;primaryKey&quot;&gt;13424&lt;/TermQuery&gt;</span>
+<span class="dtd_comment">           %    </span>
+<span class="dtd_comment">--&gt;</span><span class="dtd_plain"> </span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermQuery</span><span class="dtd_plain"> (</span><span class="dtd_keyword">#PCDATA</span><span class="dtd_plain">)</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- Optional boost for matches on this query. Values &gt; 1 --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">boost</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot;1.0&quot;</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- fieldName must be defined here or is taken from the most immediate parent XML element that defines a &quot;fieldName&quot; attribute --&gt;</span><span class="dtd_plain"> </span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">fieldName</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#IMPLIED</span><span class="dtd_tag_symbols">&gt;</span>
+
+
+
+<span class="dtd_comment">&lt;!-- </span>
+<span class="dtd_comment">    The equivalent of a BooleanQuery with multiple optional TermQuery clauses.</span>
+<span class="dtd_comment">    Child text is analyzed using a field-specific choice of Analyzer to produce a set of terms that are ORed together in Boolean logic.</span>
+<span class="dtd_comment">    Unlike UserQuery element, this does not parse any special characters to control fuzzy/phrase/boolean logic and as such is incapable</span>
+<span class="dtd_comment">    of producing a Query parse error given any user input</span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
+<span class="dtd_comment">            &lt;em&gt;Match on text from a database description (which may contain characters that </span>
+<span class="dtd_comment">    are illegal characters in the standard Lucene Query syntax used in the UserQuery tag&lt;/em&gt;</span>
+<span class="dtd_comment">            %             </span>
+<span class="dtd_comment">               &lt;TermsQuery fieldName=&quot;description&quot;&gt;Smith &amp; Sons (Ltd) : incorporated 1982&lt;/TermsQuery&gt;</span>
+<span class="dtd_comment">           %    </span>
+<span class="dtd_comment">--&gt;</span><span class="dtd_plain"> </span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermsQuery</span><span class="dtd_plain"> (</span><span class="dtd_keyword">#PCDATA</span><span class="dtd_plain">)</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- Optional boost for matches on this query. Values &gt; 1 --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermsQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">boost</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot;1.0&quot;</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- fieldName must be defined here or is taken from the most immediate parent XML element that defines a &quot;fieldName&quot; attribute --&gt;</span><span class="dtd_plain"> </span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermsQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">fieldName</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#IMPLIED</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- The &quot;Coordination factor&quot; rewards documents that contain more of the terms in this list. This flag can be used to turn off this factor. --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermsQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">disableCoord</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">true</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">false</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">&quot;false&quot;</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- The minimum number of terms that should be present in any one document before it is considered to be a match. --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">TermsQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">minimumNumberShouldMatch</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot;0&quot;</span><span class="dtd_tag_symbols">&gt;</span>
+
+
+<span class="dtd_comment">&lt;!-- </span>
+<span class="dtd_comment">    Runs a Query and filters results to only those query matches that also match the Filter element.    </span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
+<span class="dtd_comment">            &lt;em&gt;Find all documents about Lucene that have a status of &quot;published&quot;&lt;/em&gt;</span>
+<span class="dtd_comment">            %             </span>
+<span class="dtd_comment">               &lt;FilteredQuery&gt;</span>
+<span class="dtd_comment">                 &lt;Query&gt;</span>
+<span class="dtd_comment">                    &lt;UserQuery&gt;Lucene&lt;/UserQuery&gt;</span>
+<span class="dtd_comment">                 &lt;/Query&gt;</span>
+<span class="dtd_comment">                 &lt;Filter&gt;</span>
+<span class="dtd_comment">                     &lt;TermsFilter fieldName=&quot;status&quot;&gt;published&lt;/TermsFilter&gt;</span>
+<span class="dtd_comment">                 &lt;/Filter&gt;  </span>
+<span class="dtd_comment">               &lt;/FilteredQuery&gt;          </span>
+<span class="dtd_comment">           %    </span>
+<span class="dtd_comment">--&gt;</span><span class="dtd_plain"> </span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">FilteredQuery</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">Query</span><span class="dtd_plain">,</span><span class="dtd_attribute_name">Filter</span><span class="dtd_plain">)</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- Optional boost for matches on this query. Values &gt; 1 --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">FilteredQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">boost</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot;1.0&quot;</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- Used to identify a nested Query element inside another container element. NOT a top-level query tag  --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">Query</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">queries</span><span class="dtd_plain">;)</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- The choice of Filter that MUST also be matched  --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">Filter</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">filters</span><span class="dtd_plain">;)</span><span class="dtd_tag_symbols">&gt;</span>
+
+<span class="dtd_comment">&lt;!--</span>
+<span class="dtd_comment">    Filter used to limit query results to documents matching a range of field values</span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
+<span class="dtd_comment">            &lt;em&gt;Search for documents about banks from the last 10 years&lt;/em&gt;</span>
+<span class="dtd_comment">            %             </span>
+<span class="dtd_comment">            &lt;FilteredQuery&gt;</span>
+<span class="dtd_comment">               &lt;Query&gt;</span>
+<span class="dtd_comment">                  &lt;UserQuery&gt;bank&lt;/UserQuery&gt;</span>
+<span class="dtd_comment">               &lt;/Query&gt; </span>
+<span class="dtd_comment">               &lt;Filter&gt;</span>
+<span class="dtd_comment">                     &lt;RangeFilter fieldName=&quot;date&quot; lowerTerm=&quot;19970101&quot; upperTerm=&quot;20070101&quot;/&gt;</span>
+<span class="dtd_comment">               &lt;/Filter&gt;    </span>
+<span class="dtd_comment">            &lt;/FilteredQuery&gt;</span>
+<span class="dtd_comment">             %</span>
+<span class="dtd_comment">    --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">RangeFilter</span><span class="dtd_plain"> </span><span class="dtd_keyword">EMPTY</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- fieldName must be defined here or is taken from the most immediate parent XML element that defines a &quot;fieldName&quot; attribute --&gt;</span><span class="dtd_plain"> </span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">RangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">fieldName</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#IMPLIED</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- The lower-most term value for this field (must be &lt;= upperTerm) --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">RangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">lowerTerm</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#REQUIRED</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- The upper-most term value for this field (must be &gt;= lowerTerm) --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">RangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">upperTerm</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#REQUIRED</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- Controls if the lowerTerm in the range is part of the allowed set of values --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">RangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">includeLower</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">true</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">false</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">&quot;true&quot;</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- Controls if the upperTerm in the range is part of the allowed set of values --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">RangeFilter</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">includeUpper</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">true</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">false</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">&quot;true&quot;</span><span class="dtd_tag_symbols">&gt;</span>
+
+
+
+<span class="dtd_comment">&lt;!-- A single term used in a SpanQuery. These clauses are the building blocks for more complex &quot;span&quot; queries which test word proximity</span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> &lt;em&gt;Find documents using terms close to each other about mining and accidents&lt;/em&gt;</span>
+<span class="dtd_comment">          %</span>
+<span class="dtd_comment">          &lt;SpanNear slop=&quot;8&quot; inOrder=&quot;false&quot; fieldName=&quot;text&quot;&gt;      </span>
+<span class="dtd_comment">            &lt;SpanOr&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;killed&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;died&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;dead&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">            &lt;/SpanOr&gt;</span>
+<span class="dtd_comment">            &lt;SpanOr&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;miner&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;mining&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;miners&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">            &lt;/SpanOr&gt;</span>
+<span class="dtd_comment">          &lt;/SpanNear&gt;</span>
+<span class="dtd_comment">          %     </span>
+<span class="dtd_comment">    --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanTerm</span><span class="dtd_plain"> (</span><span class="dtd_keyword">#PCDATA</span><span class="dtd_plain">)</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- fieldName must be defined here or is taken from the most immediate parent XML element that defines a &quot;fieldName&quot; attribute --&gt;</span><span class="dtd_plain"> </span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanTerm</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">fieldName</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#REQUIRED</span><span class="dtd_tag_symbols">&gt;</span>
+
+<span class="dtd_comment">&lt;!-- A field-specific analyzer is used here to parse the child text provided in this tag. The SpanTerms produced are ORed in terms of Boolean logic </span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> &lt;em&gt;Use SpanOrTerms as a more convenient/succinct way of expressing multiple choices of SpanTerms. This example looks for reports </span>
+<span class="dtd_comment">    using words describing a fatality near to references to miners&lt;/em&gt;</span>
+<span class="dtd_comment">          %</span>
+<span class="dtd_comment">          &lt;SpanNear slop=&quot;8&quot; inOrder=&quot;false&quot; fieldName=&quot;text&quot;&gt;      </span>
+<span class="dtd_comment">            &lt;SpanOrTerms&gt;killed died death dead deaths&lt;/SpanOrTerms&gt;</span>
+<span class="dtd_comment">            &lt;SpanOrTerms&gt;miner mining miners&lt;/SpanOrTerms&gt;</span>
+<span class="dtd_comment">          &lt;/SpanNear&gt;</span>
+<span class="dtd_comment">          %     </span>
+<span class="dtd_comment">    --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanOrTerms</span><span class="dtd_plain"> (</span><span class="dtd_keyword">#PCDATA</span><span class="dtd_plain">)</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- fieldName must be defined here or is taken from the most immediate parent XML element that defines a &quot;fieldName&quot; attribute --&gt;</span><span class="dtd_plain"> </span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanOrTerms</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">fieldName</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#REQUIRED</span><span class="dtd_tag_symbols">&gt;</span>
+
+<span class="dtd_comment">&lt;!-- Takes any number of child queries from the Span family </span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> &lt;em&gt;Find documents using terms close to each other about mining and accidents&lt;/em&gt;</span>
+<span class="dtd_comment">          %</span>
+<span class="dtd_comment">          &lt;SpanNear slop=&quot;8&quot; inOrder=&quot;false&quot; fieldName=&quot;text&quot;&gt;      </span>
+<span class="dtd_comment">            &lt;SpanOr&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;killed&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;died&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;dead&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">            &lt;/SpanOr&gt;</span>
+<span class="dtd_comment">            &lt;SpanOr&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;miner&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;mining&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;miners&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">            &lt;/SpanOr&gt;</span>
+<span class="dtd_comment">          &lt;/SpanNear&gt;</span>
+<span class="dtd_comment">          % </span>
+<span class="dtd_comment">    </span>
+<span class="dtd_comment">    --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanOr</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">spanQueries</span><span class="dtd_plain">;)* </span><span class="dtd_tag_symbols">&gt;</span>
+
+<span class="dtd_comment">&lt;!-- Takes any number of child queries from the Span family and tests for proximity</span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@hidden</span><span class="dtd_comment"> TODO SpanNear missing &quot;boost attr (could add to SpanBuilderBase)</span>
+<span class="dtd_comment">    --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanNear</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">spanQueries</span><span class="dtd_plain">;)* </span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- defines the maximum distance between Span elements where distance is expressed as word number, not byte offset </span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> &lt;em&gt;Find documents using terms within 8 words of each other talking about mining and accidents&lt;/em&gt;</span>
+<span class="dtd_comment">          %</span>
+<span class="dtd_comment">          &lt;SpanNear slop=&quot;8&quot; inOrder=&quot;false&quot; fieldName=&quot;text&quot;&gt;      </span>
+<span class="dtd_comment">            &lt;SpanOr&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;killed&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;died&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;dead&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">            &lt;/SpanOr&gt;</span>
+<span class="dtd_comment">            &lt;SpanOr&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;miner&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;mining&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;miners&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">            &lt;/SpanOr&gt;</span>
+<span class="dtd_comment">          &lt;/SpanNear&gt;</span>
+<span class="dtd_comment">          % </span>
+<span class="dtd_comment">    --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanNear</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">slop</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#REQUIRED</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- Controls if matching terms  have to appear in the order listed or can be reversed --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanNear</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">inOrder</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">true</span><span class="dtd_plain"> | </span><span class="dtd_attribute_name">false</span><span class="dtd_plain">) </span><span class="dtd_attribute_value">&quot;true&quot;</span><span class="dtd_tag_symbols">&gt;</span>
+
+<span class="dtd_comment">&lt;!-- Looks for a SpanQuery match occuring near the beginning of a document</span>
+<span class="dtd_comment">    </span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> </span>
+<span class="dtd_comment">            &lt;em&gt;Find letters where the first 50 words talk about a resignation:&lt;/em&gt;</span>
+<span class="dtd_comment">            %             </span>
+<span class="dtd_comment">             &lt;SpanFirst end=&quot;50&quot;&gt;</span>
+<span class="dtd_comment">                   &lt;SpanOrTerms fieldName=&quot;text&quot;&gt;resigning resign leave&lt;/SpanOrTerms&gt;</span>
+<span class="dtd_comment">             &lt;/SpanFirst&gt;</span>
+<span class="dtd_comment">             %</span>
+<span class="dtd_comment">    </span>
+<span class="dtd_comment">     --&gt;</span><span class="dtd_plain"> </span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanFirst</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">spanQueries</span><span class="dtd_plain">;) </span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- Controls the end of the region considered in a document's field (expressed in word number, not byte offset) --&gt;</span><span class="dtd_plain"> </span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanFirst</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">end</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_keyword">#REQUIRED</span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- Optional boost for matches on this query. Values &gt; 1 --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanFirst</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">boost</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot;1.0&quot;</span><span class="dtd_tag_symbols">&gt;</span>
+
+<span class="dtd_comment">&lt;!-- Finds documents matching a SpanQuery but not if matching another SpanQuery </span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> &lt;em&gt;Find documents talking about social services but not containing the word &quot;public&quot;&lt;/em&gt;</span>
+<span class="dtd_comment">          %</span>
+<span class="dtd_comment">          &lt;SpanNot fieldName=&quot;text&quot;&gt;</span>
+<span class="dtd_comment">             &lt;Include&gt;</span>
+<span class="dtd_comment">                &lt;SpanNear slop=&quot;2&quot; inOrder=&quot;true&quot;&gt;      </span>
+<span class="dtd_comment">                     &lt;SpanTerm&gt;social&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">                     &lt;SpanTerm&gt;services&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">                &lt;/SpanNear&gt;             </span>
+<span class="dtd_comment">             &lt;/Include&gt;</span>
+<span class="dtd_comment">             &lt;Exclude&gt;</span>
+<span class="dtd_comment">                &lt;SpanTerm&gt;public&lt;/SpanTerm&gt;</span>
+<span class="dtd_comment">             &lt;/Exclude&gt;</span>
+<span class="dtd_comment">          &lt;/SpanNot&gt;</span>
+<span class="dtd_comment">          % </span>
+<span class="dtd_comment">    </span>
+<span class="dtd_comment">    --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">SpanNot</span><span class="dtd_plain"> (</span><span class="dtd_attribute_name">Include</span><span class="dtd_plain">,</span><span class="dtd_attribute_name">Exclude</span><span class="dtd_plain">) </span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- The SpanQuery to find --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">Include</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">spanQueries</span><span class="dtd_plain">;) </span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- The SpanQuery to be avoided --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">Exclude</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">spanQueries</span><span class="dtd_plain">;) </span><span class="dtd_tag_symbols">&gt;</span>
+
+
+<span class="dtd_comment">&lt;!-- a utility tag to wrap any filter as a query </span>
+<span class="dtd_comment">    </span><span class="dtd_dtddoc_tag">@example</span><span class="dtd_comment"> &lt;em&gt; Find all documents from the last 10 years &lt;/em&gt;</span>
+<span class="dtd_comment">    %</span>
+<span class="dtd_comment">     &lt;ConstantScoreQuery&gt;</span>
+<span class="dtd_comment">           &lt;RangeFilter fieldName=&quot;date&quot; lowerTerm=&quot;19970101&quot; upperTerm=&quot;20070101&quot;/&gt;</span>
+<span class="dtd_comment">     &lt;/ConstantScoreQuery&gt;  </span>
+<span class="dtd_comment">    %</span>
+<span class="dtd_comment">    --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ELEMENT</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">ConstantScoreQuery</span><span class="dtd_plain"> (%</span><span class="dtd_attribute_name">filters</span><span class="dtd_plain">;)* </span><span class="dtd_tag_symbols">&gt;</span>
+<span class="dtd_comment">&lt;!-- Optional boost for matches on this query. Values &gt; 1 --&gt;</span>
+<span class="dtd_tag_symbols">&lt;!</span><span class="dtd_tag_name">ATTLIST</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">ConstantScoreQuery</span><span class="dtd_plain"> </span><span class="dtd_attribute_name">boost</span><span class="dtd_plain"> </span><span class="dtd_keyword">CDATA</span><span class="dtd_plain"> </span><span class="dtd_attribute_value">&quot;1.0&quot;</span><span class="dtd_tag_symbols">&gt;</span>
+
+
+
+</pre>
+</body></html>

Added: lucene/java/trunk/contrib/xml-query-parser/docs/cctree.js
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/xml-query-parser/docs/cctree.js?rev=583307&view=auto
==============================================================================
--- lucene/java/trunk/contrib/xml-query-parser/docs/cctree.js (added)
+++ lucene/java/trunk/contrib/xml-query-parser/docs/cctree.js Tue Oct  9 14:45:27 2007
@@ -0,0 +1,291 @@
+/* This code is based on the one originally provided by
+   Geir Landrö in his dTree 2.05 package. You can get it
+   at : www.destroydrop.com/javascript/tree/.
+   
+   Therefore, the DTDDoc team considers that this code is 
+   Copyright (c) 2002-2003 Geir Landrö. Since the original
+   author didn't clearly forbids copies of this part, we
+   assume we're not doing anything wrong in porviding it
+   to you, in a modified or non-modified form.
+*/
+
+/*   
+   Geir Landrö : Orignal version, for dTree.
+   
+   Michael Koehrsen (10/2004) : Original modification to
+      allow DTDDoc to use this.
+   
+   Stefan Champailler (10/2004) : Make sure that the first
+      level of the tree is not shown (aesthetic stuff).
+*/
+
+//----------------------------------------------------------------
+// CCTree
+// Implements a DHTML tree with the following features:
+// - Supports a general directed graph as the underlying model.
+// - Supports a concept of an "always open" node.
+//----------------------------------------------------------------
+
+// Private class _CCTreeModelNode
+function _CCTreeModelNode(id,label,link,alwaysOpen,initiallyOpen)
+{
+    this.id = id;
+    this.label = label;
+    this.link = link;
+    this.alwaysOpen = alwaysOpen;
+    this.initiallyOpen = initiallyOpen;
+
+    // children and childLabels are parallel arrays.
+    // By default, childLabels[i] == children[i].label,
+    // but the link operation may optionally specify
+    // a child label that is specific to that parent-child 
+    // relationship.  
+    this.children = new Array();
+    this.childLabels = new Array();
+}
+
+_CCTreeModelNode.prototype.addChild = function(child,childLabel)
+{
+    this.children.push(child);
+    if (childLabel) this.childLabels.push(childLabel);
+    else this.childLabels.push(child.label);
+}
+
+// Private class _CCDisplayNode
+function _CCDisplayNode(modelNode,parentNode,treeId,label)
+{
+    this.modelNode = modelNode;
+    this.parentNode = parentNode;
+    this.treeId = treeId;
+
+    if (label) this.label = label;
+    else this.label = modelNode.label;
+
+    this.isLastChild = false;
+
+    if (this.parentNode) {
+        this.id = this.parentNode.id + ":" + this.modelNode.id;
+
+        /* Stefan Champailler : This little fix is clever ! Let's check the
+           following tree:
+           
+           alpha (1) -+-> beta (69)
+                      \-> beta (69).
+                      
+           This describes a tree with three nodes. Two of them are links
+           (beta). In that case, both the "beta" node have an id of "1:69".
+           So if one calls openNode on any of them, what happens is that only
+           one actually gets opened. To prevent that, I change the id of the
+           node on the fly to make sure there are only unique id's. 
+           
+           Please note this code is not very efficient (and yes, the right
+           number of slash will be added :)) */
+           
+        for( var k=0; k<parentNode.children.length; k++) {
+            if( parentNode.children[k].id == this.id)
+                this.id = this.id + "/";
+        }
+        
+        /* end of fix */
+    }
+    else this.id = this.modelNode.id;
+
+    CCTree.trees[this.treeId].allDisplayNodes[this.id] = this;
+
+    this.isOpen = this.modelNode.alwaysOpen || this.modelNode.initiallyOpen;
+    if (this.isOpen)
+    {
+        this.constructChildren();
+    }
+}
+
+_CCDisplayNode.prototype.toInnerHTML = function()
+{
+    var indent = "";
+
+    if (this.isOpen && !this.children) this.constructChildren();
+
+    if (this.isLastChild)
+    {
+        if (this.modelNode.alwaysOpen)
+            indent = this.imageTag("joinbottom.gif");
+        else if (this.isOpen)
+            indent = this.imageTag("minusbottom.gif","close")
+        else if (this.modelNode.children.length)
+            indent = this.imageTag("plusbottom.gif","open");
+        else
+            indent = this.imageTag("joinbottom.gif");
+    }
+    else
+    {
+        if (this.modelNode.alwaysOpen)
+            indent = this.imageTag("join.gif");
+        else if (this.isOpen)
+            indent = this.imageTag("minus.gif","close");
+        else if (this.modelNode.children.length)
+            indent = this.imageTag("plus.gif","open");
+        else
+            indent = this.imageTag("join.gif");
+    }
+
+    /* Construct a horizontal line of the tree */
+
+    var currAnc = this.parentNode;
+    while (currAnc)
+    {
+        if (currAnc.isLastChild)
+            indent = this.imageTag("empty.gif") + indent;
+        else
+            indent = this.imageTag("line.gif") + indent;
+        currAnc = currAnc.parentNode;
+    }
+
+    var result = indent + this.nodeContent();
+
+    /* Recurse deeper in the tree */
+    
+    if (this.isOpen && this.children)
+    {
+        var ix;
+        for (ix in this.children)
+        {
+            result += this.children[ix];
+        }
+    }
+
+    return result;
+}
+
+_CCDisplayNode.prototype.toString = function()
+{
+    return "<div class='cctree-node' id='" + this.divId() + "'>" + this.toInnerHTML() + "</div>";
+}
+
+_CCDisplayNode.prototype.constructChildren = function()
+{
+    if (this.modelNode.children.length > 0)
+    {
+        this.children = new Array();
+        var ix;
+        for (ix in this.modelNode.children)
+        {
+            this.children.push(new _CCDisplayNode(this.modelNode.children[ix],
+                                                  this,
+                                                  this.treeId,
+                                                  this.modelNode.childLabels[ix]));
+        }
+        this.children[this.children.length-1].isLastChild = true;
+    }
+}
+
+_CCDisplayNode.prototype.imageTag = function(imgName,action)
+{
+    var href =  null;
+
+    if (action == "open") href="CCTree.trees[" + this.treeId + "].openNode('" + this.id + "')";
+    if (action == "close") href="CCTree.trees[" + this.treeId + "].closeNode('" + this.id +  "')";
+
+    if (href) return "<a href=\"javascript:" + href + "\"><img src='img/" + imgName + "' border='0'></a>";
+    else return "<img src='img/" + imgName + "'>";
+}
+
+_CCDisplayNode.prototype.divId = function()
+{
+    return "CCTree_" + this.treeId + "_" + this.id;
+}
+
+_CCDisplayNode.prototype.nodeContent = function()
+{
+    var target = "";
+
+    if (CCTree.trees[this.treeId].linkTarget) target = " target='" + CCTree.trees[this.treeId].linkTarget + "'";
+
+    if (this.modelNode.link)
+        return "<a href='" + this.modelNode.link + "'" + target + ">" + this.label + "</a>";
+    else return this.label;
+}
+
+_CCDisplayNode.prototype.open = function()
+{
+    this.isOpen = true;
+    // document.all is known to work on IE but not on Konqueror or Mozilla.
+    // So I've changed it to something more portable.
+    
+    //document.all[this.divId()].innerHTML = this.toInnerHTML();
+    document.getElementById(this.divId()).innerHTML = this.toInnerHTML();
+}
+
+_CCDisplayNode.prototype.close = function()
+{
+    this.isOpen = false;
+    //document.all[this.divId()].innerHTML = this.toInnerHTML();
+    document.getElementById(this.divId()).innerHTML = this.toInnerHTML();
+}
+
+// Public class CCTree
+CCTree = function(linkTarget)
+{
+    // may have multiple roots:
+    this.rootModelNodes = new Array();
+    this.allModelNodes = new Array();
+    this.treeId = CCTree.trees.length;
+    this.allDisplayNodes = new Array(); // indexed by id
+    this.linkTarget = linkTarget;
+    CCTree.trees.push(this);
+}
+
+// static variables
+CCTree.trees = new Array();
+
+CCTree.prototype.addRootNode = function (id,label,link,alwaysOpen,initiallyOpen)
+{
+    this.rootModelNodes[id] = this.addNode(id,label,link,alwaysOpen,initiallyOpen);
+}
+
+CCTree.prototype.addNode = function(id,label,link,alwaysOpen,initiallyOpen)
+{
+    var newNode = new _CCTreeModelNode(id,label,link,alwaysOpen,initiallyOpen);
+    this.allModelNodes[id] = newNode;
+    return newNode;
+}
+
+CCTree.prototype.linkNodes = function(parentId,childId,childLabel)
+{
+    this.allModelNodes[parentId].addChild(this.allModelNodes[childId],childLabel);
+}
+
+CCTree.prototype.constructDisplayNodes = function()
+{
+    this.rootDisplayNodes = new Array();
+    var ix;
+    for (ix in this.rootModelNodes)
+    {
+        this.rootDisplayNodes.push(new _CCDisplayNode(this.rootModelNodes[ix],null,this.treeId));
+    }
+    this.rootDisplayNodes[this.rootDisplayNodes.length-1].isLastChild = true;
+}
+
+CCTree.prototype.openNode = function(displayNodeId)
+{
+    this.allDisplayNodes[displayNodeId].open();
+}
+
+CCTree.prototype.closeNode = function(displayNodeId) 
+{
+    this.allDisplayNodes[displayNodeId].close();
+}
+
+CCTree.prototype.toString = function()
+{
+    this.constructDisplayNodes();
+
+    var ix;
+    var result = "";
+
+    for (ix in this.rootDisplayNodes)
+    {
+        result += this.rootDisplayNodes[ix].toString();
+    }
+
+    return result;
+}

Added: lucene/java/trunk/contrib/xml-query-parser/docs/dtreeStyle.css
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/xml-query-parser/docs/dtreeStyle.css?rev=583307&view=auto
==============================================================================
--- lucene/java/trunk/contrib/xml-query-parser/docs/dtreeStyle.css (added)
+++ lucene/java/trunk/contrib/xml-query-parser/docs/dtreeStyle.css Tue Oct  9 14:45:27 2007
@@ -0,0 +1,30 @@
+/* This CSS is based on the one originally provided by
+   Geir Landrö in his dTree 2.05 package. You can get it
+   at : www.destroydrop.com/javascript/tree/.
+   
+   Therefore, the DTDDoc team considers that this code is 
+   Copyright (c) 2002-2003 Geir Landrö. Since the original
+   author didn't clearly forbids copies of this part, we
+   assume we're not doing anything wrong in porviding it
+   to you, in a modified or non-modified form.
+*/
+
+/*   
+   Geir Landrö : Orignal version, for dTree.
+   
+   Stefan Champailler (10/2004) : Style changes here and
+      there.
+*/
+
+
+.dtree {
+   font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
+   font-size: 11 px;
+   white-space: nowrap;
+}
+.dtree img { vertical-align: middle; }
+.dtree a { }
+.dtree a.node, .dtree a.nodeSel { white-space: nowrap; padding: 1px 2px 1px 2px; }
+.dtree a.node:hover, .dtree a.nodeSel:hover {}
+.dtree a.nodeSel { }
+.dtree .clip { overflow: hidden; }

Added: lucene/java/trunk/contrib/xml-query-parser/docs/elementsIndex.html
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/xml-query-parser/docs/elementsIndex.html?rev=583307&view=auto
==============================================================================
--- lucene/java/trunk/contrib/xml-query-parser/docs/elementsIndex.html (added)
+++ lucene/java/trunk/contrib/xml-query-parser/docs/elementsIndex.html Tue Oct  9 14:45:27 2007
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title>elements' index</title>
+<meta http-equiv='CONTENT-TYPE' content='text/html' />
+<link rel='StyleSheet' href='DTDDocStyle.css' type='text/css' media='screen' />
+</head><body>
+<p class='DTDSource'>Elements - Entities - Source | <a href='intro.html'>Intro</a> - <a href='elementsIndex.html'>Index</a><br /><a href='index.html' target='_top'>FRAMES</a>&nbsp;/&nbsp;<a href='elementsIndex.html' target='_top'>NO FRAMES</a></p><a href='#B'>B</a> <a href='#C'>C</a> <a href='#D'>D</a> <a href='#E'>E</a> <a href='#F'>F</a> <a href='#I'>I</a> <a href='#L'>L</a> <a href='#M'>M</a> <a href='#Q'>Q</a> <a href='#R'>R</a> <a href='#S'>S</a> <a href='#T'>T</a> <a href='#U'>U</a> <br />
+<a name='B'></a>
+<h2>B</h2>
+BooleanFilter - <a href='LuceneContribQuery.dtd.html#BooleanFilter'>Contrib Lucene</a><br />
+BooleanQuery - <a href='LuceneContribQuery.dtd.html#BooleanQuery'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#BooleanQuery'>Core Lucene</a><br />
+BoostingQuery - <a href='LuceneContribQuery.dtd.html#BoostingQuery'>Contrib Lucene</a><br />
+BoostQuery - <a href='LuceneContribQuery.dtd.html#BoostQuery'>Contrib Lucene</a><br />
+<a name='C'></a>
+<h2>C</h2>
+CachedFilter - <a href='LuceneContribQuery.dtd.html#CachedFilter'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#CachedFilter'>Core Lucene</a><br />
+Clause - <a href='LuceneContribQuery.dtd.html#Clause'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#Clause'>Core Lucene</a><br />
+ConstantScoreQuery - <a href='LuceneContribQuery.dtd.html#ConstantScoreQuery'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#ConstantScoreQuery'>Core Lucene</a><br />
+<a name='D'></a>
+<h2>D</h2>
+DuplicateFilter - <a href='LuceneContribQuery.dtd.html#DuplicateFilter'>Contrib Lucene</a><br />
+<a name='E'></a>
+<h2>E</h2>
+Exclude - <a href='LuceneContribQuery.dtd.html#Exclude'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#Exclude'>Core Lucene</a><br />
+<a name='F'></a>
+<h2>F</h2>
+Field - <a href='LuceneContribQuery.dtd.html#Field'>Contrib Lucene</a><br />
+Filter - <a href='LuceneContribQuery.dtd.html#Filter'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#Filter'>Core Lucene</a><br />
+FilteredQuery - <a href='LuceneContribQuery.dtd.html#FilteredQuery'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#FilteredQuery'>Core Lucene</a><br />
+FuzzyLikeThisQuery - <a href='LuceneContribQuery.dtd.html#FuzzyLikeThisQuery'>Contrib Lucene</a><br />
+<a name='I'></a>
+<h2>I</h2>
+Include - <a href='LuceneContribQuery.dtd.html#Include'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#Include'>Core Lucene</a><br />
+<a name='L'></a>
+<h2>L</h2>
+LikeThisQuery - <a href='LuceneContribQuery.dtd.html#LikeThisQuery'>Contrib Lucene</a><br />
+<a name='M'></a>
+<h2>M</h2>
+MatchAllDocsQuery - <a href='LuceneContribQuery.dtd.html#MatchAllDocsQuery'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#MatchAllDocsQuery'>Core Lucene</a><br />
+<a name='Q'></a>
+<h2>Q</h2>
+Query - <a href='LuceneContribQuery.dtd.html#Query'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#Query'>Core Lucene</a><br />
+<a name='R'></a>
+<h2>R</h2>
+RangeFilter - <a href='LuceneContribQuery.dtd.html#RangeFilter'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#RangeFilter'>Core Lucene</a><br />
+<a name='S'></a>
+<h2>S</h2>
+SpanFirst - <a href='LuceneContribQuery.dtd.html#SpanFirst'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#SpanFirst'>Core Lucene</a><br />
+SpanNear - <a href='LuceneContribQuery.dtd.html#SpanNear'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#SpanNear'>Core Lucene</a><br />
+SpanNot - <a href='LuceneContribQuery.dtd.html#SpanNot'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#SpanNot'>Core Lucene</a><br />
+SpanOr - <a href='LuceneContribQuery.dtd.html#SpanOr'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#SpanOr'>Core Lucene</a><br />
+SpanOrTerms - <a href='LuceneContribQuery.dtd.html#SpanOrTerms'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#SpanOrTerms'>Core Lucene</a><br />
+SpanTerm - <a href='LuceneContribQuery.dtd.html#SpanTerm'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#SpanTerm'>Core Lucene</a><br />
+<a name='T'></a>
+<h2>T</h2>
+TermQuery - <a href='LuceneContribQuery.dtd.html#TermQuery'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#TermQuery'>Core Lucene</a><br />
+TermsFilter - <a href='LuceneContribQuery.dtd.html#TermsFilter'>Contrib Lucene</a><br />
+TermsQuery - <a href='LuceneContribQuery.dtd.html#TermsQuery'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#TermsQuery'>Core Lucene</a><br />
+<a name='U'></a>
+<h2>U</h2>
+UserQuery - <a href='LuceneContribQuery.dtd.html#UserQuery'>Contrib Lucene</a>, <a href='LuceneCoreQuery.dtd.html#UserQuery'>Core Lucene</a></body></html>

Added: lucene/java/trunk/contrib/xml-query-parser/docs/img/empty.gif
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/xml-query-parser/docs/img/empty.gif?rev=583307&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/java/trunk/contrib/xml-query-parser/docs/img/empty.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: lucene/java/trunk/contrib/xml-query-parser/docs/img/join.gif
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/xml-query-parser/docs/img/join.gif?rev=583307&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/java/trunk/contrib/xml-query-parser/docs/img/join.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: lucene/java/trunk/contrib/xml-query-parser/docs/img/joinbottom.gif
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/xml-query-parser/docs/img/joinbottom.gif?rev=583307&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/java/trunk/contrib/xml-query-parser/docs/img/joinbottom.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: lucene/java/trunk/contrib/xml-query-parser/docs/img/line.gif
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/xml-query-parser/docs/img/line.gif?rev=583307&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/java/trunk/contrib/xml-query-parser/docs/img/line.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: lucene/java/trunk/contrib/xml-query-parser/docs/img/minus.gif
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/xml-query-parser/docs/img/minus.gif?rev=583307&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/java/trunk/contrib/xml-query-parser/docs/img/minus.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: lucene/java/trunk/contrib/xml-query-parser/docs/img/minusbottom.gif
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/xml-query-parser/docs/img/minusbottom.gif?rev=583307&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/java/trunk/contrib/xml-query-parser/docs/img/minusbottom.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: lucene/java/trunk/contrib/xml-query-parser/docs/img/plus.gif
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/xml-query-parser/docs/img/plus.gif?rev=583307&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/java/trunk/contrib/xml-query-parser/docs/img/plus.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: lucene/java/trunk/contrib/xml-query-parser/docs/img/plusbottom.gif
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/xml-query-parser/docs/img/plusbottom.gif?rev=583307&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/java/trunk/contrib/xml-query-parser/docs/img/plusbottom.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: lucene/java/trunk/contrib/xml-query-parser/docs/index.html
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/xml-query-parser/docs/index.html?rev=583307&view=auto
==============================================================================
--- lucene/java/trunk/contrib/xml-query-parser/docs/index.html (added)
+++ lucene/java/trunk/contrib/xml-query-parser/docs/index.html Tue Oct  9 14:45:27 2007
@@ -0,0 +1,16 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+<html><head>
+<title>DTDDoc for Lucene XML Query syntax</title>
+<link rel='StyleSheet' href='DTDDocStyle.css' type='text/css' media='screen' /></head>
+<frameset cols='20%, 80%'>
+   <frame src='toc.html' />
+   <frame src='intro.html' name='detail' />
+   <noframes><body>
+<p class='DTDSource'>Elements - Entities - Source | <a href='intro.html'>Intro</a> - <a href='elementsIndex.html'>Index</a><br /><a href='index.html' target='_top'>FRAMES</a>&nbsp;/&nbsp;<a href='intro.html' target='_top'>NO FRAMES</a></p><h1>Lucene XML Query syntax</h1>
+<table border='1' cellspacing='0'>
+<tr><td><code><a href='LuceneContribQuery.dtd.html'>LuceneContribQuery.dtd</a></code></td><td>Contrib Lucene</td></tr>
+<tr><td><code><a href='LuceneCoreQuery.dtd.html'>LuceneCoreQuery.dtd</a></code></td><td>Core Lucene</td></tr>
+</table>
+<p>This documentation was generated by <a href='http://dtddoc.sourceforge.net'>DTDDoc</a> 1.1.0 (2007-02-03) !</p>
+</body></noframes>
+</frameset></html>

Added: lucene/java/trunk/contrib/xml-query-parser/docs/intro.html
URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/xml-query-parser/docs/intro.html?rev=583307&view=auto
==============================================================================
--- lucene/java/trunk/contrib/xml-query-parser/docs/intro.html (added)
+++ lucene/java/trunk/contrib/xml-query-parser/docs/intro.html Tue Oct  9 14:45:27 2007
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title>DTDDoc for Lucene XML Query syntax</title>
+<link rel='StyleSheet' href='DTDDocStyle.css' type='text/css' media='screen' />
+</head><body>
+<p class='DTDSource'>Elements - Entities - Source | <a href='intro.html'>Intro</a> - <a href='elementsIndex.html'>Index</a><br /><a href='index.html' target='_top'>FRAMES</a>&nbsp;/&nbsp;<a href='intro.html' target='_top'>NO FRAMES</a></p><h1>Lucene XML Query syntax</h1>
+<table border='1' cellspacing='0'>
+<tr><td><code><a href='LuceneContribQuery.dtd.html'>LuceneContribQuery.dtd</a></code></td><td>Contrib Lucene</td></tr>
+<tr><td><code><a href='LuceneCoreQuery.dtd.html'>LuceneCoreQuery.dtd</a></code></td><td>Core Lucene</td></tr>
+</table>
+<p>This documentation was generated by <a href='http://dtddoc.sourceforge.net'>DTDDoc</a> 1.1.0 (2007-02-03) !</p>
+<p>Use the left menu to navigate through the DTDs !</p>
+</body></html>