mirror of https://github.com/apache/lucene.git
Improved javadoc for span queries.
git-svn-id: https://svn.apache.org/repos/asf/lucene/java/trunk@150276 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
73779b4489
commit
45c5ec4577
|
@ -3,5 +3,74 @@
|
||||||
<head></head>
|
<head></head>
|
||||||
<body>
|
<body>
|
||||||
The calculus of spans.
|
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>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in New Issue