pylucene 3.5.0-3
[pylucene.git] / lucene-java-3.5.0 / lucene / src / java / org / apache / lucene / search / spans / package.html
diff --git a/lucene-java-3.5.0/lucene/src/java/org/apache/lucene/search/spans/package.html b/lucene-java-3.5.0/lucene/src/java/org/apache/lucene/search/spans/package.html
new file mode 100644 (file)
index 0000000..791af17
--- /dev/null
@@ -0,0 +1,92 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<!--
+ 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.
+-->
+<html>
+<head></head>
+<body>
+The calculus of spans.
+
+<p>A span is a <code>&lt;doc,startPosition,endPosition&gt;</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 class="prettyprint">
+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 class="prettyprint">
+Query query = new BooleanQuery();
+query.add(johnKerryNearGeorgeBushAtStart, true, false);
+query.add(new TermQuery("content", "iraq"), true, false);
+</pre>
+
+</body>
+</html>