Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Plan/FullTextType.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Plan/FullTextType.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Plan/FullTextType.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Plan/FullTextType.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,109 @@ +Title: Lucy::Plan::FullTextType â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Plan::FullTextType - Full-text search field type.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>my $easyanalyzer = Lucy::Analysis::EasyAnalyzer->new( + language => 'en', +); +my $type = Lucy::Plan::FullTextType->new( + analyzer => $easyanalyzer, +); +my $schema = Lucy::Plan::Schema->new; +$schema->spec_field( name => 'title', type => $type ); +$schema->spec_field( name => 'content', type => $type );</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>Lucy::Plan::FullTextType is an implementation of <a href="../../Lucy/Plan/FieldType.html" class="podlinkpod" +>FieldType</a> tuned for “full text search”.</p> + +<p>Full text fields are associated with an <a href="../../Lucy/Analysis/Analyzer.html" class="podlinkpod" +>Analyzer</a>, +which is used to tokenize and normalize the text so that it can be searched for individual words.</p> + +<p>For an exact-match, +single value field type using character data, +see <a href="../../Lucy/Plan/StringType.html" class="podlinkpod" +>StringType</a>.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $type = Lucy::Plan::FullTextType->new( + analyzer => $analyzer, # required + boost => 2.0, # default: 1.0 + indexed => 1, # default: true + stored => 1, # default: true + sortable => 1, # default: false + highlightable => 1, # default: false +);</pre> + +<ul> +<li><b>analyzer</b> - An Analyzer.</li> + +<li><b>boost</b> - floating point per-field boost.</li> + +<li><b>indexed</b> - boolean indicating whether the field should be indexed.</li> + +<li><b>stored</b> - boolean indicating whether the field should be stored.</li> + +<li><b>sortable</b> - boolean indicating whether the field should be sortable.</li> + +<li><b>highlightable</b> - boolean indicating whether the field should be highlightable.</li> +</ul> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="set_highlightable" +>set_highlightable</a></h3> + +<pre>$full_text_type->set_highlightable($highlightable);</pre> + +<p>Indicate whether to store data required by <a href="../../Lucy/Highlight/Highlighter.html" class="podlinkpod" +>Highlighter</a> for excerpt selection and search term highlighting.</p> + +<h3><a class='u' +name="highlightable" +>highlightable</a></h3> + +<pre>my $bool = $full_text_type->highlightable();</pre> + +<p>Accessor for “highlightable” property.</p> + +<h3><a class='u' +name="get_analyzer" +>get_analyzer</a></h3> + +<pre>my $analyzer = $full_text_type->get_analyzer();</pre> + +<p>Accessor for the type’s analyzer.</p> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Plan::FullTextType isa Lucy::Plan::TextType isa <a href="../../Lucy/Plan/FieldType.html" class="podlinkpod" +>Lucy::Plan::FieldType</a> isa Clownfish::Obj.</p> + +</div>
Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Plan/Schema.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Plan/Schema.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Plan/Schema.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Plan/Schema.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,145 @@ +Title: Lucy::Plan::Schema â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Plan::Schema - User-created specification for an inverted index.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>use Lucy::Plan::Schema; +use Lucy::Plan::FullTextType; +use Lucy::Analysis::EasyAnalyzer; + +my $schema = Lucy::Plan::Schema->new; +my $easyanalyzer = Lucy::Analysis::EasyAnalyzer->new( + language => 'en', +); +my $type = Lucy::Plan::FullTextType->new( + analyzer => $easyanalyzer, +); +$schema->spec_field( name => 'title', type => $type ); +$schema->spec_field( name => 'content', type => $type );</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>A Schema is a specification which indicates how other entities should interpret the raw data in an inverted index and interact with it.</p> + +<p>Once an actual index has been created using a particular Schema, +existing field definitions may not be changed. +However, +it is possible to add new fields during subsequent indexing sessions.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $schema = Lucy::Plan::Schema->new;</pre> + +<p>Constructor. +Takes no arguments.</p> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="architecture" +>architecture</a></h3> + +<pre>my $architecture = $schema->architecture();</pre> + +<p>Factory method which creates an Architecture object for this index.</p> + +<h3><a class='u' +name="spec_field" +>spec_field</a></h3> + +<pre>$schema->spec_field( + name => $name # required + type => $type # required +);</pre> + +<p>Define the behavior of a field by associating it with a FieldType.</p> + +<p>If this method has already been called for the supplied <code>field</code>, +it will merely test to verify that the supplied FieldType <a href="../../Clownfish/Obj.html#equals" class="podlinkpod" +>equals()</a> the existing one.</p> + +<ul> +<li><b>name</b> - The name of the field.</li> + +<li><b>type</b> - A FieldType.</li> +</ul> + +<h3><a class='u' +name="fetch_type" +>fetch_type</a></h3> + +<pre>my $field_type = $schema->fetch_type($field);</pre> + +<p>Return the FieldType for the specified field. +If the field can’t be found, +return undef.</p> + +<h3><a class='u' +name="fetch_sim" +>fetch_sim</a></h3> + +<pre>my $similarity = $schema->fetch_sim($field); +my $similarity = $schema->fetch_sim(); # default: undef</pre> + +<p>Return the Similarity for the specified field, +or undef if either the field can’t be found or it isn’t associated with a Similarity.</p> + +<h3><a class='u' +name="num_fields" +>num_fields</a></h3> + +<pre>my $int = $schema->num_fields();</pre> + +<p>Return the number of fields currently defined.</p> + +<h3><a class='u' +name="all_fields" +>all_fields</a></h3> + +<pre>my $arrayref = $schema->all_fields();</pre> + +<p>Return all the Schema’s field names as an array.</p> + +<h3><a class='u' +name="get_architecture" +>get_architecture</a></h3> + +<pre>my $architecture = $schema->get_architecture();</pre> + +<p>Return the Schema instance’s internal Architecture object.</p> + +<h3><a class='u' +name="get_similarity" +>get_similarity</a></h3> + +<pre>my $similarity = $schema->get_similarity();</pre> + +<p>Return the Schema instance’s internal Similarity object.</p> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Plan::Schema isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Plan/StringType.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Plan/StringType.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Plan/StringType.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Plan/StringType.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,58 @@ +Title: Lucy::Plan::StringType â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Plan::StringType - Non-tokenized text type.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>my $type = Lucy::Plan::StringType->new; +my $schema = Lucy::Plan::Schema->new; +$schema->spec_field( name => 'category', type => $type );</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>Lucy::Plan::StringType is used for “exact-match” strings.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $type = Lucy::Plan::StringType->new( + boost => 0.1, # default: 1.0 + indexed => 1, # default: true + stored => 1, # default: true + sortable => 1, # default: false +);</pre> + +<ul> +<li><b>boost</b> - floating point per-field boost.</li> + +<li><b>indexed</b> - boolean indicating whether the field should be indexed.</li> + +<li><b>stored</b> - boolean indicating whether the field should be stored.</li> + +<li><b>sortable</b> - boolean indicating whether the field should be sortable.</li> +</ul> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Plan::StringType isa Lucy::Plan::TextType isa <a href="../../Lucy/Plan/FieldType.html" class="podlinkpod" +>Lucy::Plan::FieldType</a> isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/ANDQuery.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/ANDQuery.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/ANDQuery.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/ANDQuery.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,84 @@ +Title: Lucy::Search::ANDQuery â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::ANDQuery - Intersect multiple result sets.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>my $foo_and_bar_query = Lucy::Search::ANDQuery->new( + children => [ $foo_query, $bar_query ], +); +my $hits = $searcher->hits( query => $foo_and_bar_query ); +...</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>ANDQuery is a composite <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Query</a> which matches only when all of its children match, +so its result set is the intersection of their result sets. +Documents which match receive a summed score.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $foo_and_bar_query = Lucy::Search::ANDQuery->new( + children => [ $foo_query, $bar_query ], +);</pre> + +<p>Create a new ANDQuery.</p> + +<ul> +<li><b>children</b> - An array of child Queries.</li> +</ul> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="make_compiler" +>make_compiler</a></h3> + +<pre>my $compiler = $and_query->make_compiler( + searcher => $searcher # required + boost => $boost # required + subordinate => $subordinate # default: false +);</pre> + +<p>Abstract factory method returning a Compiler derived from this Query.</p> + +<ul> +<li><b>searcher</b> - A Searcher.</li> + +<li><b>boost</b> - A scoring multiplier.</li> + +<li><b>subordinate</b> - Indicates whether the Query is a subquery (as opposed to a top-level query). +If false, +the implementation must invoke <a href="../../Lucy/Search/Compiler.html#normalize" class="podlinkpod" +>normalize()</a> on the newly minted Compiler object before returning it.</li> +</ul> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::ANDQuery isa <a href="../../Lucy/Search/PolyQuery.html" class="podlinkpod" +>Lucy::Search::PolyQuery</a> isa <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Lucy::Search::Query</a> isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Collector.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Collector.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Collector.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Collector.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,79 @@ +Title: Lucy::Search::Collector â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::Collector - Process hits.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre># Abstract base class.</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>A Collector decides what to do with the hits that a <a href="../../Lucy/Search/Matcher.html" class="podlinkpod" +>Matcher</a> iterates through, +based on how the abstract <a href="#collect" class="podlinkpod" +>collect()</a> method is implemented.</p> + +<p>Collectors operate on individual segments, +but must operate within the context of a larger collection. +Each time the collector moves to a new segment, +Set_Reader(), +Set_Base() and Set_Matcher() will be called, +and the collector must take the updated information into account.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>package MyCollector; +use base qw( Lucy::Search::Collector ); +our %foo; +sub new { + my $self = shift->SUPER::new; + my %args = @_; + $foo{$$self} = $args{foo}; + return $self; +}</pre> + +<p>Abstract constructor. +Takes no arguments.</p> + +<h2><a class='u' +name="ABSTRACT_METHODS" +>ABSTRACT METHODS</a></h2> + +<h3><a class='u' +name="collect" +>collect</a></h3> + +<pre>$collector->collect($doc_id);</pre> + +<p>Do something with a doc id. +(For instance, +keep track of the docs with the ten highest scores.)</p> + +<ul> +<li><b>doc_id</b> - A segment document id.</li> +</ul> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::Collector isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Collector/BitCollector.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Collector/BitCollector.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Collector/BitCollector.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Collector/BitCollector.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,72 @@ +Title: Lucy::Search::Collector::BitCollector â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::Collector::BitCollector - Collector which records doc nums in a BitVector.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>my $bit_vec = Lucy::Object::BitVector->new( + capacity => $searcher->doc_max + 1, +); +my $bit_collector = Lucy::Search::Collector::BitCollector->new( + bit_vector => $bit_vec, +); +$searcher->collect( + collector => $bit_collector, + query => $query, +);</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>BitCollector is a Collector which saves matching document ids in a <a href="../../../Lucy/Object/BitVector.html" class="podlinkpod" +>BitVector</a>. +It is useful for recording the entire set of documents which matches a query.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $bit_collector = Lucy::Search::Collector::BitCollector->new( + bit_vector => $bit_vec, # required +);</pre> + +<p>Create a new BitCollector.</p> + +<ul> +<li><b>bit_vector</b> - A Lucy::Object::BitVector.</li> +</ul> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="collect" +>collect</a></h3> + +<pre>$bit_collector->collect($doc_id);</pre> + +<p>Set bit in the object’s BitVector for the supplied doc id.</p> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::Collector::BitCollector isa <a href="../../../Lucy/Search/Collector.html" class="podlinkpod" +>Lucy::Search::Collector</a> isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Compiler.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Compiler.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Compiler.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Compiler.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,205 @@ +Title: Lucy::Search::Compiler â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::Compiler - Query-to-Matcher compiler.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre># (Compiler is an abstract base class.) +package MyCompiler; +use base qw( Lucy::Search::Compiler ); + +sub make_matcher { + my $self = shift; + return MyMatcher->new( @_, compiler => $self ); +}</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>The purpose of the Compiler class is to take a specification in the form of a <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Query</a> object and compile a <a href="../../Lucy/Search/Matcher.html" class="podlinkpod" +>Matcher</a> object that can do real work.</p> + +<p>The simplest Compiler subclasses – such as those associated with constant-scoring Query types – might simply implement a <a href="#make_matcher" class="podlinkpod" +>make_matcher()</a> method which passes along information verbatim from the Query to the Matcher’s constructor.</p> + +<p>However it is common for the Compiler to perform some calculations which affect it’s “weight” – a floating point multiplier that the Matcher will factor into each document’s score. +If that is the case, +then the Compiler subclass may wish to override <a href="#get_weight" class="podlinkpod" +>get_weight()</a>, +<a href="#sum_of_squared_weights" class="podlinkpod" +>sum_of_squared_weights()</a>, +and <a href="#apply_norm_factor" class="podlinkpod" +>apply_norm_factor()</a>.</p> + +<p>Compiling a Matcher is a two stage process.</p> + +<p>The first stage takes place during the Compiler’s construction, +which is where the Query object meets a <a href="../../Lucy/Search/Searcher.html" class="podlinkpod" +>Searcher</a> object for the first time. +Searchers operate on a specific document collection and they can tell you certain statistical information about the collection – such as how many total documents are in the collection, +or how many documents in the collection a particular term is present in. +Lucy’s core Compiler classes plug this information into the classic TF/IDF weighting algorithm to adjust the Compiler’s weight; custom subclasses might do something similar.</p> + +<p>The second stage of compilation is <a href="#make_matcher" class="podlinkpod" +>make_matcher()</a>, +method, +which is where the Compiler meets a <a href="../../Lucy/Index/SegReader.html" class="podlinkpod" +>SegReader</a> object. +SegReaders are associated with a single segment within a single index on a single machine, +and are thus lower-level than Searchers, +which may represent a document collection spread out over a search cluster (comprising several indexes and many segments). +The Compiler object can use new information supplied by the SegReader – such as whether a term is missing from the local index even though it is present within the larger collection represented by the Searcher – when figuring out what to feed to the Matchers’s constructor, +or whether <a href="#make_matcher" class="podlinkpod" +>make_matcher()</a> should return a Matcher at all.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $compiler = MyCompiler->SUPER::new( + parent => $my_query, + searcher => $searcher, + similarity => $sim, # default: undef + boost => undef, # default: see below +);</pre> + +<p>Abstract constructor.</p> + +<ul> +<li><b>parent</b> - The parent Query.</li> + +<li><b>searcher</b> - A Lucy::Search::Searcher, +such as an IndexSearcher.</li> + +<li><b>similarity</b> - A Similarity.</li> + +<li><b>boost</b> - An arbitrary scoring multiplier. +Defaults to the boost of the parent Query.</li> +</ul> + +<h2><a class='u' +name="ABSTRACT_METHODS" +>ABSTRACT METHODS</a></h2> + +<h3><a class='u' +name="make_matcher" +>make_matcher</a></h3> + +<pre>my $matcher = $compiler->make_matcher( + reader => $reader # required + need_score => $need_score # required +);</pre> + +<p>Factory method returning a Matcher.</p> + +<ul> +<li><b>reader</b> - A SegReader.</li> + +<li><b>need_score</b> - Indicate whether the Matcher must implement <a href="../../Lucy/Search/Matcher.html#score" class="podlinkpod" +>score()</a>.</li> +</ul> + +<p>Returns: a Matcher, +or undef if the Matcher would have matched no documents.</p> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="get_weight" +>get_weight</a></h3> + +<pre>my $float = $compiler->get_weight();</pre> + +<p>Return the Compiler’s numerical weight, +a scoring multiplier. +By default, +returns the object’s boost.</p> + +<h3><a class='u' +name="get_similarity" +>get_similarity</a></h3> + +<pre>my $similarity = $compiler->get_similarity();</pre> + +<p>Accessor for the Compiler’s Similarity object.</p> + +<h3><a class='u' +name="get_parent" +>get_parent</a></h3> + +<pre>my $query = $compiler->get_parent();</pre> + +<p>Accessor for the Compiler’s parent Query object.</p> + +<h3><a class='u' +name="sum_of_squared_weights" +>sum_of_squared_weights</a></h3> + +<pre>my $float = $compiler->sum_of_squared_weights();</pre> + +<p>Compute and return a raw weighting factor. +(This quantity is used by <a href="#normalize" class="podlinkpod" +>normalize()</a>). +By default, +simply returns 1.0.</p> + +<h3><a class='u' +name="apply_norm_factor" +>apply_norm_factor</a></h3> + +<pre>$compiler->apply_norm_factor($factor);</pre> + +<p>Apply a floating point normalization multiplier. +For a TermCompiler, +this involves multiplying its own weight by the supplied factor; combining classes such as ORCompiler would apply the factor recursively to their children.</p> + +<p>The default implementation is a no-op; subclasses may wish to multiply their internal weight by the supplied factor.</p> + +<ul> +<li><b>factor</b> - The multiplier.</li> +</ul> + +<h3><a class='u' +name="normalize" +>normalize</a></h3> + +<pre>$compiler->normalize();</pre> + +<p>Take a newly minted Compiler object and apply query-specific normalization factors. +Should be invoked by Query subclasses during <a href="../../Lucy/Search/Query.html#make_compiler" class="podlinkpod" +>make_compiler()</a> for top-level nodes.</p> + +<p>For a TermQuery, +the scoring formula is approximately:</p> + +<pre>(tf_d * idf_t / norm_d) * (tf_q * idf_t / norm_q)</pre> + +<p><a href="#normalize" class="podlinkpod" +>normalize()</a> is theoretically concerned with applying the second half of that formula to a the Compiler’s weight. +What actually happens depends on how the Compiler and Similarity methods called internally are implemented.</p> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::Compiler isa <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Lucy::Search::Query</a> isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Hits.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Hits.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Hits.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Hits.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,60 @@ +Title: Lucy::Search::Hits â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::Hits - Access search results.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>my $hits = $searcher->hits( + query => $query, + offset => 0, + num_wanted => 10, +); +while ( my $hit = $hits->next ) { + print "<p>$hit->{title} <em>" . $hit->get_score . "</em></p>\n"; +}</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>Hits objects are iterators used to access the results of a search.</p> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="next" +>next</a></h3> + +<pre>my $hit_doc = $hits->next();</pre> + +<p>Return the next hit, +or undef when the iterator is exhausted.</p> + +<h3><a class='u' +name="total_hits" +>total_hits</a></h3> + +<pre>my $int = $hits->total_hits();</pre> + +<p>Return the total number of documents which matched the Query used to produce the Hits object. +Note that this is the total number of matches, +not just the number of matches represented by the Hits iterator.</p> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::Hits isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/IndexSearcher.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/IndexSearcher.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/IndexSearcher.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/IndexSearcher.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,137 @@ +Title: Lucy::Search::IndexSearcher â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::IndexSearcher - Execute searches against a single index.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>my $searcher = Lucy::Search::IndexSearcher->new( + index => '/path/to/index' +); +my $hits = $searcher->hits( + query => 'foo bar', + offset => 0, + num_wanted => 100, +);</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>Use the IndexSearcher class to perform search queries against an index. +(For searching multiple indexes at once, +see <a href="../../Lucy/Search/PolySearcher.html" class="podlinkpod" +>PolySearcher</a>).</p> + +<p>IndexSearchers operate against a single point-in-time view or <a href="../../Lucy/Index/Snapshot.html" class="podlinkpod" +>Snapshot</a> of the index. +If an index is modified, +a new IndexSearcher must be opened to access the changes.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $searcher = Lucy::Search::IndexSearcher->new( + index => '/path/to/index' +);</pre> + +<p>Create a new IndexSearcher.</p> + +<ul> +<li><b>index</b> - Either a string filepath, +a Folder, +or an IndexReader.</li> +</ul> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="doc_max" +>doc_max</a></h3> + +<pre>my $int = $index_searcher->doc_max();</pre> + +<p>Return the maximum number of docs in the collection represented by the Searcher, +which is also the highest possible internal doc id. +Documents which have been marked as deleted but not yet purged are included in this count.</p> + +<h3><a class='u' +name="doc_freq" +>doc_freq</a></h3> + +<pre>my $int = $index_searcher->doc_freq( + field => $field # required + term => $term # required +);</pre> + +<p>Return the number of documents which contain the term in the given field.</p> + +<ul> +<li><b>field</b> - Field name.</li> + +<li><b>term</b> - The term to look up.</li> +</ul> + +<h3><a class='u' +name="collect" +>collect</a></h3> + +<pre>$index_searcher->collect( + query => $query # required + collector => $collector # required +);</pre> + +<p>Iterate over hits, +feeding them into a <a href="../../Lucy/Search/Collector.html" class="podlinkpod" +>Collector</a>.</p> + +<ul> +<li><b>query</b> - A Query.</li> + +<li><b>collector</b> - A Collector.</li> +</ul> + +<h3><a class='u' +name="fetch_doc" +>fetch_doc</a></h3> + +<pre>my $hit_doc = $index_searcher->fetch_doc($doc_id);</pre> + +<p>Retrieve a document. +Throws an error if the doc id is out of range.</p> + +<ul> +<li><b>doc_id</b> - A document id.</li> +</ul> + +<h3><a class='u' +name="get_reader" +>get_reader</a></h3> + +<pre>my $index_reader = $index_searcher->get_reader();</pre> + +<p>Accessor for the object’s <code>reader</code> member.</p> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::IndexSearcher isa <a href="../../Lucy/Search/Searcher.html" class="podlinkpod" +>Lucy::Search::Searcher</a> isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/LeafQuery.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/LeafQuery.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/LeafQuery.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/LeafQuery.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,106 @@ +Title: Lucy::Search::LeafQuery â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::LeafQuery - Leaf node in a tree created by QueryParser.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>package MyQueryParser; +use base qw( Lucy::Search::QueryParser ); + +sub expand_leaf { + my ( $self, $leaf_query ) = @_; + if ( $leaf_query->get_text =~ /.\*\s*$/ ) { + return PrefixQuery->new( + query_string => $leaf_query->get_text, + field => $leaf_query->get_field, + ); + } + else { + return $self->SUPER::expand_leaf($leaf_query); + } +}</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>LeafQuery objects serve as leaf nodes in the tree structure generated by <a href="../../Lucy/Search/QueryParser.html" class="podlinkpod" +>QueryParser</a>’s <a href="../../Lucy/Search/QueryParser.html#tree" class="podlinkpod" +>tree()</a> method. +Ultimately, +they must be transformed, +typically into either <a href="../../Lucy/Search/TermQuery.html" class="podlinkpod" +>TermQuery</a> or <a href="../../Lucy/Search/PhraseQuery.html" class="podlinkpod" +>PhraseQuery</a> objects, +as attempting to search a LeafQuery causes an error.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $leaf_query = Lucy::Search::LeafQuery->new( + text => '"three blind mice"', # required + field => 'content', # default: undef +);</pre> + +<p>Create a new LeafQuery.</p> + +<ul> +<li><b>field</b> - Optional field name.</li> + +<li><b>text</b> - Raw query text.</li> +</ul> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="get_field" +>get_field</a></h3> + +<pre>my $string = $leaf_query->get_field();</pre> + +<p>Accessor for object’s <code>field</code> attribute.</p> + +<h3><a class='u' +name="get_text" +>get_text</a></h3> + +<pre>my $string = $leaf_query->get_text();</pre> + +<p>Accessor for object’s <code>text</code> attribute.</p> + +<h3><a class='u' +name="make_compiler" +>make_compiler</a></h3> + +<pre>my $compiler = $leaf_query->make_compiler( + searcher => $searcher # required + boost => $boost # required + subordinate => $subordinate # default: false +);</pre> + +<p>Throws an error.</p> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::LeafQuery isa <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Lucy::Search::Query</a> isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/MatchAllQuery.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/MatchAllQuery.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/MatchAllQuery.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/MatchAllQuery.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,68 @@ +Title: Lucy::Search::MatchAllQuery â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::MatchAllQuery - Query which matches all documents.</p> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>MatchAllQuery is a utility class which matches all documents. +Each match is assigned a score of 0.0, +so that in composite queries, +any document which matches against another part of the query will be ranked higher than a document which matches only via the MatchAllQuery.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $match_all_query = Lucy::Search::MatchAllQuery->new;</pre> + +<p>Constructor. +Takes no arguments.</p> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="make_compiler" +>make_compiler</a></h3> + +<pre>my $compiler = $match_all_query->make_compiler( + searcher => $searcher # required + boost => $boost # required + subordinate => $subordinate # default: false +);</pre> + +<p>Abstract factory method returning a Compiler derived from this Query.</p> + +<ul> +<li><b>searcher</b> - A Searcher.</li> + +<li><b>boost</b> - A scoring multiplier.</li> + +<li><b>subordinate</b> - Indicates whether the Query is a subquery (as opposed to a top-level query). +If false, +the implementation must invoke <a href="../../Lucy/Search/Compiler.html#normalize" class="podlinkpod" +>normalize()</a> on the newly minted Compiler object before returning it.</li> +</ul> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::MatchAllQuery isa <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Lucy::Search::Query</a> isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Matcher.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Matcher.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Matcher.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Matcher.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,105 @@ +Title: Lucy::Search::Matcher â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::Matcher - Match a set of document ids.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre># abstract base class</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>A Matcher iterates over a set of ascending document ids. +Some Matchers implement <a href="#score" class="podlinkpod" +>score()</a> and can assign relevance scores to the docs that they match. +Other implementations may be match-only.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $matcher = MyMatcher->SUPER::new;</pre> + +<p>Abstract constructor.</p> + +<h2><a class='u' +name="ABSTRACT_METHODS" +>ABSTRACT METHODS</a></h2> + +<h3><a class='u' +name="next" +>next</a></h3> + +<pre>my $int = $matcher->next();</pre> + +<p>Proceed to the next doc id.</p> + +<p>Returns: A positive doc id, +or 0 once the iterator is exhausted.</p> + +<h3><a class='u' +name="get_doc_id" +>get_doc_id</a></h3> + +<pre>my $int = $matcher->get_doc_id();</pre> + +<p>Return the current doc id. +Valid only after a successful call to <a href="#next" class="podlinkpod" +>next()</a> or <a href="#advance" class="podlinkpod" +>advance()</a> and must not be called otherwise.</p> + +<h3><a class='u' +name="score" +>score</a></h3> + +<pre>my $float = $matcher->score();</pre> + +<p>Return the score of the current document.</p> + +<p>Only Matchers which are used for scored search need implement <a href="#score" class="podlinkpod" +>score()</a>.</p> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="advance" +>advance</a></h3> + +<pre>my $int = $matcher->advance($target);</pre> + +<p>Advance the iterator to the first doc id greater than or equal to <code>target</code>. +The default implementation simply calls <a href="#next" class="podlinkpod" +>next()</a> over and over, +but subclasses have the option of doing something more efficient.</p> + +<ul> +<li><b>target</b> - A positive doc id, +which must be greater than the current doc id once the iterator has been initialized.</li> +</ul> + +<p>Returns: A positive doc id, +or 0 once the iterator is exhausted.</p> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::Matcher isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/NOTQuery.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/NOTQuery.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/NOTQuery.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/NOTQuery.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,105 @@ +Title: Lucy::Search::NOTQuery â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::NOTQuery - Invert the result set of another Query.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>my $not_bar_query = Lucy::Search::NOTQuery->new( + negated_query => $bar_query, +); +my $foo_and_not_bar_query = Lucy::Search::ANDQuery->new( + children => [ $foo_query, $not_bar_query ]. +); +my $hits = $searcher->hits( query => $foo_and_not_bar_query ); +...</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>A NOTQuery wraps another <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Query</a> and matches against its inverse document set. +All matching docs recieve a score of 0.0.</p> + +<p>NOTQuery is often used in conjunction with <a href="../../Lucy/Search/ANDQuery.html" class="podlinkpod" +>ANDQuery</a> to provide “a AND NOT b” semantics.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $not_query = Lucy::Search::NOTQuery->new( + negated_query => $query, +);</pre> + +<p>Create a new NOTQuery.</p> + +<ul> +<li><b>negated_query</b> - The Query whose result set should be inverted.</li> +</ul> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="get_negated_query" +>get_negated_query</a></h3> + +<pre>my $query = $not_query->get_negated_query();</pre> + +<p>Accessor for the object’s negated query.</p> + +<h3><a class='u' +name="set_negated_query" +>set_negated_query</a></h3> + +<pre>$not_query->set_negated_query($negated_query);</pre> + +<p>Setter for the object’s negated query.</p> + +<h3><a class='u' +name="make_compiler" +>make_compiler</a></h3> + +<pre>my $compiler = $not_query->make_compiler( + searcher => $searcher # required + boost => $boost # required + subordinate => $subordinate # default: false +);</pre> + +<p>Abstract factory method returning a Compiler derived from this Query.</p> + +<ul> +<li><b>searcher</b> - A Searcher.</li> + +<li><b>boost</b> - A scoring multiplier.</li> + +<li><b>subordinate</b> - Indicates whether the Query is a subquery (as opposed to a top-level query). +If false, +the implementation must invoke <a href="../../Lucy/Search/Compiler.html#normalize" class="podlinkpod" +>normalize()</a> on the newly minted Compiler object before returning it.</li> +</ul> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::NOTQuery isa <a href="../../Lucy/Search/PolyQuery.html" class="podlinkpod" +>Lucy::Search::PolyQuery</a> isa <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Lucy::Search::Query</a> isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/NoMatchQuery.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/NoMatchQuery.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/NoMatchQuery.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/NoMatchQuery.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,68 @@ +Title: Lucy::Search::NoMatchQuery â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::NoMatchQuery - Query which matches no documents.</p> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>NoMatchQuery is a utility class representing a query which matches nothing. +Typical usage might include e.g. +returning a NoMatchQuery when a <a href="../../Lucy/Search/QueryParser.html" class="podlinkpod" +>QueryParser</a> is asked to parse an empty string.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $no_match_query = Lucy::Search::NoMatchQuery->new;</pre> + +<p>Constructor. +Takes no arguments.</p> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="make_compiler" +>make_compiler</a></h3> + +<pre>my $compiler = $no_match_query->make_compiler( + searcher => $searcher # required + boost => $boost # required + subordinate => $subordinate # default: false +);</pre> + +<p>Abstract factory method returning a Compiler derived from this Query.</p> + +<ul> +<li><b>searcher</b> - A Searcher.</li> + +<li><b>boost</b> - A scoring multiplier.</li> + +<li><b>subordinate</b> - Indicates whether the Query is a subquery (as opposed to a top-level query). +If false, +the implementation must invoke <a href="../../Lucy/Search/Compiler.html#normalize" class="podlinkpod" +>normalize()</a> on the newly minted Compiler object before returning it.</li> +</ul> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::NoMatchQuery isa <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Lucy::Search::Query</a> isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/ORQuery.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/ORQuery.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/ORQuery.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/ORQuery.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,84 @@ +Title: Lucy::Search::ORQuery â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::ORQuery - Union multiple result sets.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>my $foo_or_bar_query = Lucy::Search::ORQuery->new( + children => [ $foo_query, $bar_query ], +); +my $hits = $searcher->hits( query => $foo_or_bar_query ); +...</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>ORQuery is a composite <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Query</a> which matches when any of its children match, +so its result set is the union of their result sets. +Matching documents recieve a summed score from all matching child Queries.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $foo_or_bar_query = Lucy::Search::ORQuery->new( + children => [ $foo_query, $bar_query ], +);</pre> + +<p>Create a new ORQuery.</p> + +<ul> +<li><b>children</b> - An array of child Queries.</li> +</ul> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="make_compiler" +>make_compiler</a></h3> + +<pre>my $compiler = $or_query->make_compiler( + searcher => $searcher # required + boost => $boost # required + subordinate => $subordinate # default: false +);</pre> + +<p>Abstract factory method returning a Compiler derived from this Query.</p> + +<ul> +<li><b>searcher</b> - A Searcher.</li> + +<li><b>boost</b> - A scoring multiplier.</li> + +<li><b>subordinate</b> - Indicates whether the Query is a subquery (as opposed to a top-level query). +If false, +the implementation must invoke <a href="../../Lucy/Search/Compiler.html#normalize" class="podlinkpod" +>normalize()</a> on the newly minted Compiler object before returning it.</li> +</ul> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::ORQuery isa <a href="../../Lucy/Search/PolyQuery.html" class="podlinkpod" +>Lucy::Search::PolyQuery</a> isa <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Lucy::Search::Query</a> isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/PhraseQuery.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/PhraseQuery.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/PhraseQuery.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/PhraseQuery.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,100 @@ +Title: Lucy::Search::PhraseQuery â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::PhraseQuery - Query matching an ordered list of terms.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>my $phrase_query = Lucy::Search::PhraseQuery->new( + field => 'content', + terms => [qw( the who )], +); +my $hits = $searcher->hits( query => $phrase_query );</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>PhraseQuery is a subclass of <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Query</a> for matching against an ordered sequence of terms.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $phrase_query = Lucy::Search::PhraseQuery->new( + field => $field # required + terms => $terms # required +);</pre> + +<p>Create a new PhraseQuery.</p> + +<ul> +<li><b>field</b> - The field that the phrase must occur in.</li> + +<li><b>terms</b> - The ordered array of terms that must match.</li> +</ul> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="get_field" +>get_field</a></h3> + +<pre>my $string = $phrase_query->get_field();</pre> + +<p>Accessor for object’s field attribute.</p> + +<h3><a class='u' +name="get_terms" +>get_terms</a></h3> + +<pre>my $arrayref = $phrase_query->get_terms();</pre> + +<p>Accessor for object’s array of terms.</p> + +<h3><a class='u' +name="make_compiler" +>make_compiler</a></h3> + +<pre>my $compiler = $phrase_query->make_compiler( + searcher => $searcher # required + boost => $boost # required + subordinate => $subordinate # default: false +);</pre> + +<p>Abstract factory method returning a Compiler derived from this Query.</p> + +<ul> +<li><b>searcher</b> - A Searcher.</li> + +<li><b>boost</b> - A scoring multiplier.</li> + +<li><b>subordinate</b> - Indicates whether the Query is a subquery (as opposed to a top-level query). +If false, +the implementation must invoke <a href="../../Lucy/Search/Compiler.html#normalize" class="podlinkpod" +>normalize()</a> on the newly minted Compiler object before returning it.</li> +</ul> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::PhraseQuery isa <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Lucy::Search::Query</a> isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/PolyQuery.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/PolyQuery.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/PolyQuery.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/PolyQuery.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,62 @@ +Title: Lucy::Search::PolyQuery â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::PolyQuery - Base class for composite Query objects.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>sub walk { + my $query = shift; + if ( $query->isa("Lucy::Search::PolyQuery") ) { + if ( $query->isa("Lucy::Search::ORQuery") ) { ... } + elsif ( $query->isa("Lucy::Search::ANDQuery") ) { ... } + elsif ( $query->isa("Lucy::Search::RequiredOptionalQuery") ) { + ... + } + elsif ( $query->isa("Lucy::Search::NOTQuery") ) { ... } + } + else { ... } +}</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>PolyQuery serves as a shared base class for <a href="../../Lucy/Search/ANDQuery.html" class="podlinkpod" +>ANDQuery</a>, +<a href="../../Lucy/Search/ORQuery.html" class="podlinkpod" +>ORQuery</a>, +<a href="../../Lucy/Search/NOTQuery.html" class="podlinkpod" +>NOTQuery</a>, +and <a href="../../Lucy/Search/RequiredOptionalQuery.html" class="podlinkpod" +>RequiredOptionalQuery</a>. +All of these classes may serve as nodes in composite Query with a tree structure which may be walked.</p> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="add_child" +>add_child</a></h3> + +<pre>$poly_query->add_child($query);</pre> + +<p>Add a child Query node.</p> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::PolyQuery isa <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Lucy::Search::Query</a> isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/PolySearcher.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/PolySearcher.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/PolySearcher.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/PolySearcher.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,123 @@ +Title: Lucy::Search::PolySearcher â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::PolySearcher - Aggregate results from multiple Searchers.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>my $schema = MySchema->new; +for my $index (@index_paths) { + push @searchers, Lucy::Search::IndexSearcher->new( index => $index ); +} +my $poly_searcher = Lucy::Search::PolySearcher->new( + schema => $schema, + searchers => \@searchers, +); +my $hits = $poly_searcher->hits( query => $query );</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>The primary use for PolySearcher is to aggregate results from several indexes on a single machine.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $poly_searcher = Lucy::Search::PolySearcher->new( + schema => $schema, + searchers => \@searchers, +);</pre> + +<p>Create a new PolySearcher.</p> + +<ul> +<li><b>schema</b> - A Schema.</li> + +<li><b>searchers</b> - An array of Searchers.</li> +</ul> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="doc_max" +>doc_max</a></h3> + +<pre>my $int = $poly_searcher->doc_max();</pre> + +<p>Return the maximum number of docs in the collection represented by the Searcher, +which is also the highest possible internal doc id. +Documents which have been marked as deleted but not yet purged are included in this count.</p> + +<h3><a class='u' +name="doc_freq" +>doc_freq</a></h3> + +<pre>my $int = $poly_searcher->doc_freq( + field => $field # required + term => $term # required +);</pre> + +<p>Return the number of documents which contain the term in the given field.</p> + +<ul> +<li><b>field</b> - Field name.</li> + +<li><b>term</b> - The term to look up.</li> +</ul> + +<h3><a class='u' +name="collect" +>collect</a></h3> + +<pre>$poly_searcher->collect( + query => $query # required + collector => $collector # required +);</pre> + +<p>Iterate over hits, +feeding them into a <a href="../../Lucy/Search/Collector.html" class="podlinkpod" +>Collector</a>.</p> + +<ul> +<li><b>query</b> - A Query.</li> + +<li><b>collector</b> - A Collector.</li> +</ul> + +<h3><a class='u' +name="fetch_doc" +>fetch_doc</a></h3> + +<pre>my $hit_doc = $poly_searcher->fetch_doc($doc_id);</pre> + +<p>Retrieve a document. +Throws an error if the doc id is out of range.</p> + +<ul> +<li><b>doc_id</b> - A document id.</li> +</ul> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::PolySearcher isa <a href="../../Lucy/Search/Searcher.html" class="podlinkpod" +>Lucy::Search::Searcher</a> isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Query.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Query.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Query.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Query.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,138 @@ +Title: Lucy::Search::Query â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::Query - A specification for a search query.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre># Query is an abstract base class. +package MyQuery; +use base qw( Lucy::Search::Query ); + +sub make_compiler { + my ( $self, %args ) = @_; + my $subordinate = delete $args{subordinate}; + my $compiler = MyCompiler->new( %args, parent => $self ); + $compiler->normalize unless $subordinate; + return $compiler; +} + +package MyCompiler; +use base ( Lucy::Search::Compiler ); +...</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>Query objects are simple containers which contain the minimum information necessary to define a search query.</p> + +<p>The most common way to generate Query objects is to feed a search string such as ‘foo AND bar’ to a <a href="../../Lucy/Search/QueryParser.html" class="podlinkpod" +>QueryParser’s</a> <a href="../../Lucy/Search/QueryParser.html#parse" class="podlinkpod" +>parse()</a> method, +which outputs an abstract syntax tree built up from various Query subclasses such as <a href="../../Lucy/Search/ANDQuery.html" class="podlinkpod" +>ANDQuery</a> and <a href="../../Lucy/Search/TermQuery.html" class="podlinkpod" +>TermQuery</a>. +However, +it is also possible to use custom Query objects to build a search specification which cannot be easily represented using a search string.</p> + +<p>Subclasses of Query must implement <a href="#make_compiler" class="podlinkpod" +>make_compiler()</a>, +which is the first step in compiling a Query down to a <a href="../../Lucy/Search/Matcher.html" class="podlinkpod" +>Matcher</a> which can actually match and score documents.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $query = MyQuery->SUPER::new( + boost => 2.5, +);</pre> + +<p>Abstract constructor.</p> + +<ul> +<li><b>boost</b> - A scoring multiplier, +affecting the Query's relative contribution to each document's score. +Typically defaults to 1.0, +but subclasses which do not contribute to document scores such as NOTQuery and MatchAllQuery default to 0.0 instead.</li> +</ul> + +<h2><a class='u' +name="ABSTRACT_METHODS" +>ABSTRACT METHODS</a></h2> + +<h3><a class='u' +name="make_compiler" +>make_compiler</a></h3> + +<pre>my $compiler = $query->make_compiler( + searcher => $searcher # required + boost => $boost # required + subordinate => $subordinate # default: false +);</pre> + +<p>Abstract factory method returning a Compiler derived from this Query.</p> + +<ul> +<li><b>searcher</b> - A Searcher.</li> + +<li><b>boost</b> - A scoring multiplier.</li> + +<li><b>subordinate</b> - Indicates whether the Query is a subquery (as opposed to a top-level query). +If false, +the implementation must invoke <a href="../../Lucy/Search/Compiler.html#normalize" class="podlinkpod" +>normalize()</a> on the newly minted Compiler object before returning it.</li> +</ul> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="set_boost" +>set_boost</a></h3> + +<pre>$query->set_boost($boost);</pre> + +<p>Set the Query’s boost.</p> + +<h3><a class='u' +name="get_boost" +>get_boost</a></h3> + +<pre>my $float = $query->get_boost();</pre> + +<p>Get the Query’s boost.</p> + +<h3><a class='u' +name="dump" +>dump</a></h3> + +<pre>my $obj = $query->dump();</pre> + +<h3><a class='u' +name="load" +>load</a></h3> + +<pre>my $obj = $query->load($dump);</pre> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::Query isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/QueryParser.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/QueryParser.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/QueryParser.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/QueryParser.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,344 @@ +Title: Lucy::Search::QueryParser â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::QueryParser - Transform a string into a Query object.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>my $query_parser = Lucy::Search::QueryParser->new( + schema => $searcher->get_schema, + fields => ['body'], +); +my $query = $query_parser->parse( $query_string ); +my $hits = $searcher->hits( query => $query );</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>QueryParser accepts search strings as input and produces <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Query</a> objects, +suitable for feeding into <a href="../../Lucy/Search/IndexSearcher.html" class="podlinkpod" +>IndexSearcher</a> and other <a href="../../Lucy/Search/Searcher.html" class="podlinkpod" +>Searcher</a> subclasses.</p> + +<p>The following syntactical constructs are recognized by QueryParser:</p> + +<ul> +<li>Boolean operators ‘AND’, +‘OR’, +and ‘AND NOT’.</li> + +<li>Prepented +plus and -minus, +indicating that the labeled entity should be either required or forbidden – be it a single word, +a phrase, +or a parenthetical group.</li> + +<li>Logical groups, +delimited by parentheses.</li> + +<li>Phrases, +delimited by double quotes.</li> +</ul> + +<p>Additionally, +the following syntax can be enabled via <a href="#set_heed_colons" class="podlinkpod" +>set_heed_colons()</a>:</p> + +<ul> +<li>Field-specific constructs, +in the form of ‘fieldname:termtext’ or ‘fieldname:(foo bar)’. +(The field specified by ‘fieldname:’ will be used instead of the QueryParser’s default fields).</li> +</ul> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $query_parser = Lucy::Search::QueryParser->new( + schema => $searcher->get_schema, # required + analyzer => $analyzer, # overrides schema + fields => ['bodytext'], # default: indexed fields + default_boolop => 'AND', # default: 'OR' +);</pre> + +<p>Constructor.</p> + +<ul> +<li><b>schema</b> - A <a href="../../Lucy/Plan/Schema.html" class="podlinkpod" +>Schema</a>.</li> + +<li><b>analyzer</b> - An <a href="../../Lucy/Analysis/Analyzer.html" class="podlinkpod" +>Analyzer</a>. +Ordinarily, +the analyzers specified by each field’s definition will be used, +but if <code>analyzer</code> is supplied, +it will override and be used for all fields. +This can lead to mismatches between what is in the index and what is being searched for, +so use caution.</li> + +<li><b>fields</b> - The names of the fields which will be searched against. +Defaults to those fields which are defined as indexed in the supplied Schema.</li> + +<li><b>default_boolop</b> - Two possible values: ‘AND’ and ‘OR’. +The default is ‘OR’, +which means: return documents which match any of the query terms. +If you want only documents which match all of the query terms, +set this to ‘AND’.</li> +</ul> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="parse" +>parse</a></h3> + +<pre>my $query = $query_parser->parse($query_string); +my $query = $query_parser->parse(); # default: undef</pre> + +<p>Build a Query object from the contents of a query string. +At present, +implemented internally by calling <a href="#tree" class="podlinkpod" +>tree()</a>, +<a href="#expand" class="podlinkpod" +>expand()</a>, +and <a href="#prune" class="podlinkpod" +>prune()</a>.</p> + +<ul> +<li><b>query_string</b> - The string to be parsed. +May be undef.</li> +</ul> + +<p>Returns: a Query.</p> + +<h3><a class='u' +name="tree" +>tree</a></h3> + +<pre>my $query = $query_parser->tree($query_string);</pre> + +<p>Parse the logical structure of a query string, +building a tree comprised of Query objects. +Leaf nodes in the tree will most often be LeafQuery objects but might be MatchAllQuery or NoMatchQuery objects as well. +Internal nodes will be objects which subclass PolyQuery: ANDQuery, +ORQuery, +NOTQuery, +and RequiredOptionalQuery.</p> + +<p>The output of <a href="#tree" class="podlinkpod" +>tree()</a> is an intermediate form which must be passed through <a href="#expand" class="podlinkpod" +>expand()</a> before being used to feed a search.</p> + +<ul> +<li><b>query_string</b> - The string to be parsed.</li> +</ul> + +<p>Returns: a Query.</p> + +<h3><a class='u' +name="expand" +>expand</a></h3> + +<pre>my $query = $query_parser->expand($query);</pre> + +<p>Walk the hierarchy of a Query tree, +descending through all PolyQuery nodes and calling <a href="#expand_leaf" class="podlinkpod" +>expand_leaf()</a> on any LeafQuery nodes encountered.</p> + +<ul> +<li><b>query</b> - A Query object.</li> +</ul> + +<p>Returns: A Query – usually the same one that was supplied after in-place modification, +but possibly another.</p> + +<h3><a class='u' +name="expand_leaf" +>expand_leaf</a></h3> + +<pre>my $query = $query_parser->expand_leaf($query);</pre> + +<p>Convert a LeafQuery into either a TermQuery, +a PhraseQuery, +or an ORQuery joining multiple TermQueries/PhraseQueries to accommodate multiple fields. +LeafQuery text will be passed through the relevant Analyzer for each field. +Quoted text will be transformed into PhraseQuery objects. +Unquoted text will be converted to either a TermQuery or a PhraseQuery depending on how many tokens are generated.</p> + +<ul> +<li><b>query</b> - A Query. +Only LeafQuery objects will be processed; others will be passed through.</li> +</ul> + +<p>Returns: A Query.</p> + +<h3><a class='u' +name="prune" +>prune</a></h3> + +<pre>my $query = $query_parser->prune($query); +my $query = $query_parser->prune(); # default: undef</pre> + +<p>Prevent certain Query structures from returning too many results. +Query objects built via <a href="#tree" class="podlinkpod" +>tree()</a> and <a href="#expand" class="podlinkpod" +>expand()</a> can generate “return the world” result sets, +such as in the case of <code>NOT a_term_not_in_the_index</code>; <a href="#prune" class="podlinkpod" +>prune()</a> walks the hierarchy and eliminates such branches.</p> + +<pre> 'NOT foo' => [NOMATCH] + 'foo OR NOT bar' => 'foo' + 'foo OR (-bar AND -baz) => 'foo'</pre> + +<p><a href="#prune" class="podlinkpod" +>prune()</a> also eliminates some double-negative constructs – even though such constructs may not actually return the world:</p> + +<pre> 'foo AND -(-bar)' => 'foo'</pre> + +<p>In this example, +safety is taking precedence over logical consistency. +If you want logical consistency instead, +call <a href="#tree" class="podlinkpod" +>tree()</a> then <a href="#expand" class="podlinkpod" +>expand()</a>, +skipping <a href="#prune" class="podlinkpod" +>prune()</a>.</p> + +<ul> +<li><b>query</b> - A Query.</li> +</ul> + +<p>Returns: a Query; in most cases, +the supplied Query after in-place modification.</p> + +<h3><a class='u' +name="make_term_query" +>make_term_query</a></h3> + +<pre>my $query = $query_parser->make_term_query( + field => $field # required + term => $term # required +);</pre> + +<p>Factory method creating a TermQuery.</p> + +<ul> +<li><b>field</b> - Field name.</li> + +<li><b>term</b> - Term text.</li> +</ul> + +<p>Returns: A Query.</p> + +<h3><a class='u' +name="make_phrase_query" +>make_phrase_query</a></h3> + +<pre>my $query = $query_parser->make_phrase_query( + field => $field # required + terms => $terms # required +);</pre> + +<p>Factory method creating a PhraseQuery.</p> + +<ul> +<li><b>field</b> - Field that the phrase must occur in.</li> + +<li><b>terms</b> - Ordered array of terms that must match.</li> +</ul> + +<p>Returns: A Query.</p> + +<h3><a class='u' +name="make_or_query" +>make_or_query</a></h3> + +<pre>my $query = $query_parser->make_or_query($children); +my $query = $query_parser->make_or_query(); # default: undef</pre> + +<p>Factory method creating an ORQuery.</p> + +<ul> +<li><b>children</b> - Array of child Queries.</li> +</ul> + +<p>Returns: A Query.</p> + +<h3><a class='u' +name="make_and_query" +>make_and_query</a></h3> + +<pre>my $query = $query_parser->make_and_query($children); +my $query = $query_parser->make_and_query(); # default: undef</pre> + +<p>Factory method creating an ANDQuery.</p> + +<ul> +<li><b>children</b> - Array of child Queries.</li> +</ul> + +<p>Returns: A Query.</p> + +<h3><a class='u' +name="make_not_query" +>make_not_query</a></h3> + +<pre>my $query = $query_parser->make_not_query($negated_query);</pre> + +<p>Factory method creating a NOTQuery.</p> + +<ul> +<li><b>negated_query</b> - Query to be inverted.</li> +</ul> + +<p>Returns: A Query.</p> + +<h3><a class='u' +name="make_req_opt_query" +>make_req_opt_query</a></h3> + +<pre>my $query = $query_parser->make_req_opt_query( + required_query => $required_query # required + optional_query => $optional_query # required +);</pre> + +<p>Factory method creating a RequiredOptionalQuery.</p> + +<ul> +<li><b>required_query</b> - Query must must match.</li> + +<li><b>optional_query</b> - Query which should match.</li> +</ul> + +<p>Returns: A Query.</p> + +<h3><a class='u' +name="set_heed_colons" +>set_heed_colons</a></h3> + +<pre>$query_parser->set_heed_colons($heed_colons);</pre> + +<p>Enable/disable parsing of <code>fieldname:foo</code> constructs.</p> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::QueryParser isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/RangeQuery.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/RangeQuery.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/RangeQuery.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/RangeQuery.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,109 @@ +Title: Lucy::Search::RangeQuery â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::RangeQuery - Match a range of values.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre># Match all articles by "Foo" published since the year 2000. +my $range_query = Lucy::Search::RangeQuery->new( + field => 'publication_date', + lower_term => '2000-01-01', + include_lower => 1, +); +my $author_query = Lucy::Search::TermQuery->new( + field => 'author_last_name', + text => 'Foo', +); +my $and_query = Lucy::Search::ANDQuery->new( + children => [ $range_query, $author_query ], +); +my $hits = $searcher->hits( query => $and_query ); +...</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>RangeQuery matches documents where the value for a particular field falls within a given range.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $range_query = Lucy::Search::RangeQuery->new( + field => 'product_number', # required + lower_term => '003', # see below + upper_term => '060', # see below + include_lower => 0, # default true + include_upper => 0, # default true +);</pre> + +<p>Create a new RangeQuery.</p> + +<p>Takes 5 parameters; <code>field</code> is required, +as is at least one of either <code>lower_term</code> or <code>upper_term</code>.</p> + +<ul> +<li><b>field</b> - The name of a <code>sortable</code> field.</li> + +<li><b>lower_term</b> - Lower delimiter. +If not supplied, +all values less than <code>upper_term</code> will pass.</li> + +<li><b>upper_term</b> - Upper delimiter. +If not supplied, +all values greater than <code>lower_term</code> will pass.</li> + +<li><b>include_lower</b> - Indicates whether docs which match <code>lower_term</code> should be included in the results.</li> + +<li><b>include_upper</b> - Indicates whether docs which match <code>upper_term</code> should be included in the results.</li> +</ul> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="make_compiler" +>make_compiler</a></h3> + +<pre>my $compiler = $range_query->make_compiler( + searcher => $searcher # required + boost => $boost # required + subordinate => $subordinate # default: false +);</pre> + +<p>Abstract factory method returning a Compiler derived from this Query.</p> + +<ul> +<li><b>searcher</b> - A Searcher.</li> + +<li><b>boost</b> - A scoring multiplier.</li> + +<li><b>subordinate</b> - Indicates whether the Query is a subquery (as opposed to a top-level query). +If false, +the implementation must invoke <a href="../../Lucy/Search/Compiler.html#normalize" class="podlinkpod" +>normalize()</a> on the newly minted Compiler object before returning it.</li> +</ul> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::RangeQuery isa <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Lucy::Search::Query</a> isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/RequiredOptionalQuery.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/RequiredOptionalQuery.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/RequiredOptionalQuery.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/RequiredOptionalQuery.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,123 @@ +Title: Lucy::Search::RequiredOptionalQuery â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::RequiredOptionalQuery - Join results for two Queries, +one required, +one optional.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>my $foo_and_maybe_bar = Lucy::Search::RequiredOptionalQuery->new( + required_query => $foo_query, + optional_query => $bar_query, +); +my $hits = $searcher->hits( query => $foo_and_maybe_bar ); +...</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>RequiredOptionalQuery joins the result sets of one Query which MUST match, +and one Query which SHOULD match. +When only the required Query matches, +its score is passed along; when both match, +the scores are summed.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $reqopt_query = Lucy::Search::RequiredOptionalQuery->new( + required_query => $foo_query, # required + optional_query => $bar_query, # required +);</pre> + +<p>Create a new RequiredOptionalQuery.</p> + +<ul> +<li><b>required_query</b> - Query must must match.</li> + +<li><b>optional_query</b> - Query which should match.</li> +</ul> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="get_required_query" +>get_required_query</a></h3> + +<pre>my $query = $required_optional_query->get_required_query();</pre> + +<p>Getter for the required Query.</p> + +<h3><a class='u' +name="set_required_query" +>set_required_query</a></h3> + +<pre>$required_optional_query->set_required_query($required_query);</pre> + +<p>Setter for the required Query.</p> + +<h3><a class='u' +name="get_optional_query" +>get_optional_query</a></h3> + +<pre>my $query = $required_optional_query->get_optional_query();</pre> + +<p>Getter for the optional Query.</p> + +<h3><a class='u' +name="set_optional_query" +>set_optional_query</a></h3> + +<pre>$required_optional_query->set_optional_query($optional_query);</pre> + +<p>Setter for the optional Query.</p> + +<h3><a class='u' +name="make_compiler" +>make_compiler</a></h3> + +<pre>my $compiler = $required_optional_query->make_compiler( + searcher => $searcher # required + boost => $boost # required + subordinate => $subordinate # default: false +);</pre> + +<p>Abstract factory method returning a Compiler derived from this Query.</p> + +<ul> +<li><b>searcher</b> - A Searcher.</li> + +<li><b>boost</b> - A scoring multiplier.</li> + +<li><b>subordinate</b> - Indicates whether the Query is a subquery (as opposed to a top-level query). +If false, +the implementation must invoke <a href="../../Lucy/Search/Compiler.html#normalize" class="podlinkpod" +>normalize()</a> on the newly minted Compiler object before returning it.</li> +</ul> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::RequiredOptionalQuery isa <a href="../../Lucy/Search/PolyQuery.html" class="podlinkpod" +>Lucy::Search::PolyQuery</a> isa <a href="../../Lucy/Search/Query.html" class="podlinkpod" +>Lucy::Search::Query</a> isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Searcher.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Searcher.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Searcher.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/Searcher.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,169 @@ +Title: Lucy::Search::Searcher â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::Searcher - Base class for searching collections of documents.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre># Abstract base class.</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>Abstract base class for objects which search. +Core subclasses include <a href="../../Lucy/Search/IndexSearcher.html" class="podlinkpod" +>IndexSearcher</a> and <a href="../../Lucy/Search/PolySearcher.html" class="podlinkpod" +>PolySearcher</a>.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>package MySearcher; +use base qw( Lucy::Search::Searcher ); +sub new { + my $self = shift->SUPER::new; + ... + return $self; +}</pre> + +<p>Abstract constructor.</p> + +<ul> +<li><b>schema</b> - A Schema.</li> +</ul> + +<h2><a class='u' +name="ABSTRACT_METHODS" +>ABSTRACT METHODS</a></h2> + +<h3><a class='u' +name="doc_max" +>doc_max</a></h3> + +<pre>my $int = $searcher->doc_max();</pre> + +<p>Return the maximum number of docs in the collection represented by the Searcher, +which is also the highest possible internal doc id. +Documents which have been marked as deleted but not yet purged are included in this count.</p> + +<h3><a class='u' +name="doc_freq" +>doc_freq</a></h3> + +<pre>my $int = $searcher->doc_freq( + field => $field # required + term => $term # required +);</pre> + +<p>Return the number of documents which contain the term in the given field.</p> + +<ul> +<li><b>field</b> - Field name.</li> + +<li><b>term</b> - The term to look up.</li> +</ul> + +<h3><a class='u' +name="collect" +>collect</a></h3> + +<pre>$searcher->collect( + query => $query # required + collector => $collector # required +);</pre> + +<p>Iterate over hits, +feeding them into a <a href="../../Lucy/Search/Collector.html" class="podlinkpod" +>Collector</a>.</p> + +<ul> +<li><b>query</b> - A Query.</li> + +<li><b>collector</b> - A Collector.</li> +</ul> + +<h3><a class='u' +name="fetch_doc" +>fetch_doc</a></h3> + +<pre>my $hit_doc = $searcher->fetch_doc($doc_id);</pre> + +<p>Retrieve a document. +Throws an error if the doc id is out of range.</p> + +<ul> +<li><b>doc_id</b> - A document id.</li> +</ul> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="glean_query" +>glean_query</a></h3> + +<pre>my $query = $searcher->glean_query($query); +my $query = $searcher->glean_query(); # default: undef</pre> + +<p>If the supplied object is a Query, +return it; if it’s a query string, +create a QueryParser and parse it to produce a query against all indexed fields.</p> + +<h3><a class='u' +name="hits" +>hits</a></h3> + +<pre>my $hits = $searcher->hits( + query => $query # required + offset => $offset # default: 0 + num_wanted => $num_wanted # default: 10 + sort_spec => $sort_spec # default: undef +);</pre> + +<p>Return a Hits object containing the top results.</p> + +<ul> +<li><b>query</b> - Either a Query object or a query string.</li> + +<li><b>offset</b> - The number of most-relevant hits to discard, +typically used when “paging” through hits N at a time. +Setting <code>offset</code> to 20 and <code>num_wanted</code> to 10 retrieves hits 21-30, +assuming that 30 hits can be found.</li> + +<li><b>num_wanted</b> - The number of hits you would like to see after <code>offset</code> is taken into account.</li> + +<li><b>sort_spec</b> - A <a href="../../Lucy/Search/SortSpec.html" class="podlinkpod" +>SortSpec</a>, +which will affect how results are ranked and returned.</li> +</ul> + +<h3><a class='u' +name="get_schema" +>get_schema</a></h3> + +<pre>my $schema = $searcher->get_schema();</pre> + +<p>Accessor for the object’s <code>schema</code> member.</p> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::Searcher isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/SortRule.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/SortRule.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/SortRule.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/SortRule.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,96 @@ +Title: Lucy::Search::SortRule â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::SortRule - Element of a SortSpec.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>my $sort_spec = Lucy::Search::SortSpec->new( + rules => [ + Lucy::Search::SortRule->new( field => 'date' ), + Lucy::Search::SortRule->new( type => 'doc_id' ), + ], +);</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>SortRules are the building blocks used to assemble <a href="../../Lucy/Search/SortSpec.html" class="podlinkpod" +>SortSpecs</a>; each SortRule defines a single level of sorting. +For example, +sorting first by “category” then by score requires a SortSpec with two SortRule elements.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $by_title = Lucy::Search::SortRule->new( field => 'title' ); +my $by_score = Lucy::Search::SortRule->new( type => 'score' ); +my $by_doc_id = Lucy::Search::SortRule->new( type => 'doc_id' ); +my $reverse_date = Lucy::Search::SortRule->new( + field => 'date', + reverse => 1, +);</pre> + +<p>Create a new SortRule.</p> + +<ul> +<li><b>type</b> - Indicate whether to sort by score, +field, +etc. +(The default is to sort by a field.)</li> + +<li><b>field</b> - The name of a <code>sortable</code> field.</li> + +<li><b>reverse</b> - If true, +reverse the order of the sort for this rule.</li> +</ul> + +<h2><a class='u' +name="METHODS" +>METHODS</a></h2> + +<h3><a class='u' +name="get_field" +>get_field</a></h3> + +<pre>my $string = $sort_rule->get_field();</pre> + +<p>Accessor for “field” member.</p> + +<h3><a class='u' +name="get_type" +>get_type</a></h3> + +<pre>my $int = $sort_rule->get_type();</pre> + +<p>Accessor for “type” member.</p> + +<h3><a class='u' +name="get_reverse" +>get_reverse</a></h3> + +<pre>my $bool = $sort_rule->get_reverse();</pre> + +<p>Accessor for “reverse” member.</p> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::SortRule isa Clownfish::Obj.</p> + +</div> Added: lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/SortSpec.mdtext URL: http://svn.apache.org/viewvc/lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/SortSpec.mdtext?rev=1762636&view=auto ============================================================================== --- lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/SortSpec.mdtext (added) +++ lucy/site/trunk/content/docs/0.5.0/perl/Lucy/Search/SortSpec.mdtext Wed Sep 28 12:06:24 2016 @@ -0,0 +1,62 @@ +Title: Lucy::Search::SortSpec â Apache Lucy Documentation + +<div> +<a name='___top' class='dummyTopAnchor' ></a> + +<h2><a class='u' +name="NAME" +>NAME</a></h2> + +<p>Lucy::Search::SortSpec - Specify a custom sort order for search results.</p> + +<h2><a class='u' +name="SYNOPSIS" +>SYNOPSIS</a></h2> + +<pre>my $sort_spec = Lucy::Search::SortSpec->new( + rules => [ + Lucy::Search::SortRule->new( field => 'date' ), + Lucy::Search::SortRule->new( type => 'doc_id' ), + ], +); +my $hits = $searcher->hits( + query => $query, + sort_spec => $sort_spec, +);</pre> + +<h2><a class='u' +name="DESCRIPTION" +>DESCRIPTION</a></h2> + +<p>By default, +searches return results in order of relevance; SortSpec allows you to indicate an alternate order via an array of <a href="../../Lucy/Search/SortRule.html" class="podlinkpod" +>SortRules</a>.</p> + +<p>Fields you wish to sort against must be <code>sortable</code>.</p> + +<p>For a stable sort (important when paging through results), +add a sort-by-doc rule as the last SortRule.</p> + +<h2><a class='u' +name="CONSTRUCTORS" +>CONSTRUCTORS</a></h2> + +<h3><a class='u' +name="new" +>new</a></h3> + +<pre>my $sort_spec = Lucy::Search::SortSpec->new( rules => \@rules );</pre> + +<p>Create a new SortSpec.</p> + +<ul> +<li><b>rules</b> - An array of SortRules.</li> +</ul> + +<h2><a class='u' +name="INHERITANCE" +>INHERITANCE</a></h2> + +<p>Lucy::Search::SortSpec isa Clownfish::Obj.</p> + +</div>