cutting 2004/03/30 12:33:25 Modified: src/java/org/apache/lucene/search/spans package.html Log: Improved javadoc for span queries. Revision Changes Path 1.2 +69 -0 jakarta-lucene/src/java/org/apache/lucene/search/spans/package.html Index: package.html =================================================================== RCS file: /home/cvs/jakarta-lucene/src/java/org/apache/lucene/search/spans/package.html,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- package.html 30 Jan 2004 22:10:00 -0000 1.1 +++ package.html 30 Mar 2004 20:33:25 -0000 1.2 @@ -3,5 +3,74 @@ <head></head> <body> The calculus of spans. + +<p>A span is a <code><doc,startPosition,endPosition></code> tuple.</p> + +<p>The following span query operators are implemented: + +<ul> + +<li>A <a href="SpanTermQuery.html">SpanTermQuery</a> matches all spans +containing a particular <a href="../../index/Term.html">Term</a>.</li> + +<li> A <a href="SpanNearQuery.html">SpanNearQuery</a> matches spans +which occur near one another, and can be used to implement things like +phrase search (when constructed from <a +href="SpanTermQuery.html">SpanTermQueries</a> and inter-phrase +proximity (when constructed from other <a +href="SpanNearQuery.html">SpanNearQueries</a>.</li> + +<li>A <a href="SpanOrQuery.html">SpanOrQuery</a> merges spans from a +number of other <a href="SpanQuery.html">SpanQueries</a>.</li> + +<li>A <a href="SpanNotQuery.html">SpanNotQuery</a> removes spans +matching one <a href="SpanQuery.html">SpanQuery</a> which overlap +another. This can be used, e.g., to implement within-paragraph +search.</li> + +<li>A <a href="SpanFirstQuery.html">SpanFirstQuery</a> matches spans +matching <code>q</code> whose end position is less than +<code>n</code>. This can be used to constrain matches to the first +part of the document.</li> + +</ul> + +In all cases, output spans are minimally inclusive. In other words, a +span formed by matching a span in x and y starts at the lesser of the +two starts and ends at the greater of the two ends. +</p> + +<p>For example, a span query which matches "John Kerry" within ten +words of "George Bush" within the first 100 words of the document +could be constructed with: +<pre> +SpanQuery john = new SpanTermQuery(new Term("content", "john")); +SpanQuery kerry = new SpanTermQuery(new Term("content", "kerry")); +SpanQuery george = new SpanTermQuery(new Term("content", "george")); +SpanQuery bush = new SpanTermQuery(new Term("content", "bush")); + +SpanQuery johnKerry = + new SpanNearQuery(new SpanQuery[] {john, kerry}, 0, true); + +SpanQuery georgeBush = + new SpanNearQuery(new SpanQuery[] {george, bush}, 0, true); + +SpanQuery johnKerryNearGeorgeBush = + new SpanNearQuery(new SpanQuery[] {johnKerry, georgeBush}, 10, false); + +SpanQuery johnKerryNearGeorgeBushAtStart = + new SpanFirstQuery(johnKerryNearGeorgeBush, 100); +</pre> + +<p>Span queries may be freely intermixed with other Lucene queries. +So, for example, the above query can be restricted to documents which +also use the word "iraq" with: + +<pre> +Query query = new BooleanQuery(); +query.add(johnKerryNearGeorgeBushAtStart, true, false); +query.add(new TermQuery("content", "iraq"), true, false); +</pre> + </body> </html>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]