=head1 NAME KinoSearch::Docs::Tutorial::FieldType - Specify per-field properties and behaviors. =head1 DEPRECATED The KinoSearch code base has been assimilated by the Apache L<Lucy> project. The "KinoSearch" namespace has been deprecated, but development continues under our new name at our new home: L<http://lucy.apache.org/> =head1 DESCRIPTION The Schema we used in the last chapter specifies three fields: my $type = KinoSearch::Plan::FullTextType->new( analyzer => $polyanalyzer, ); $schema->spec_field( name => 'title', type => $type ); $schema->spec_field( name => 'content', type => $type ); $schema->spec_field( name => 'url', type => $type ); Since they are all defined as "full text" fields, they are all searchable -- including the C<url> field, a dubious choice. Some URLs contain meaningful information, but these don't, really: http://example.com/us_constitution/amend1.txt We may as well not bother indexing the URL content. To achieve that we need to assign the C<url> field to a different FieldType. =head2 StringType Instead of FullTextType, we'll use a L<StringType|KinoSearch::Plan::StringType>, which doesn't use an Analyzer to break up text into individual fields. Furthermore, we'll mark this StringType as unindexed, so that its content won't be searchable at all. my $url_type = KinoSearch::Plan::StringType->new( indexed => 0 ); $schema->spec_field( name => 'url', type => $url_type ); To observe the change in behavior, try searching for C<us_constitution> both before and after changing the Schema and re-indexing. =head2 Toggling 'stored' For a taste of other FieldType possibilities, try turning off C<stored> for one or more fields. my $content_type = KinoSearch::Plan::FullTextType->new( analyzer => $polyanalyzer, stored => 0, ); Turning off C<stored> for either C<title> or C<url> mangles our results page, but since we're not displaying C<content>, turning it off for C<content> has no effect -- except on index size. =head2 Analyzers up next Analyzers play a crucial role in the behavior of FullTextType fields. In our next tutorial chapter, L<KinoSearch::Docs::Tutorial::Analysis>, we'll see how changing up the Analyzer changes search results. =head1 COPYRIGHT AND LICENSE Copyright 2008-2011 Marvin Humphrey This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.