# ***********************************************
# 
# !!!! DO NOT EDIT !!!!
# 
# This file was auto-generated by Build.PL.
# 
# ***********************************************
# 
# 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.

=encoding utf8

=head1 NAME

Lucy::Plan::FieldType - Define a field’s behavior.

=head1 SYNOPSIS

    my @sortable;
    for my $field ( @{ $schema->all_fields } ) {
        my $type = $schema->fetch_type($field);
        next unless $type->sortable;
        push @sortable, $field;
    }

=head1 DESCRIPTION

FieldType is an abstract class defining a set of traits and behaviors which
may be associated with one or more field names.

Properties which are common to all field types include C<boost>,
C<indexed>, C<stored>, C<sortable>,
C<binary>, and C<similarity>.

The C<boost> property is a floating point scoring multiplier
which defaults to 1.0.  Values greater than 1.0 cause the field to
contribute more to a document’s score, lower values, less.

The C<indexed> property indicates whether the field should be
indexed (so that it can be searched).

The C<stored> property indicates whether to store the raw field
value, so that it can be retrieved when a document turns up in a search.

The C<sortable> property indicates whether search results should
be sortable based on the contents of the field.

The C<binary> property indicates whether the field contains
binary or text data.  Unlike most other properties, C<binary> is
not settable.

The C<similarity> property is a
L<Similarity|Lucy::Index::Similarity> object which defines matching
and scoring behavior for the field.  It is required if the field is
C<indexed>.

=head1 METHODS

=head2 set_boost

    $field_type->set_boost($boost);

Setter for C<boost>.

=head2 get_boost

    my $float = $field_type->get_boost();

Accessor for C<boost>.

=head2 set_indexed

    $field_type->set_indexed($indexed);

Setter for C<indexed>.

=head2 indexed

    my $bool = $field_type->indexed();

Accessor for C<indexed>.

=head2 set_stored

    $field_type->set_stored($stored);

Setter for C<stored>.

=head2 stored

    my $bool = $field_type->stored();

Accessor for C<stored>.

=head2 set_sortable

    $field_type->set_sortable($sortable);

Setter for C<sortable>.

=head2 sortable

    my $bool = $field_type->sortable();

Accessor for C<sortable>.

=head2 binary

    my $bool = $field_type->binary();

Indicate whether the field contains binary data.

=head1 INHERITANCE

Lucy::Plan::FieldType isa Clownfish::Obj.

=cut

