---
name: "Lucy::Docs::Tutorial::FieldType"
section: "3pm"
platform: "linux"
package: "liblucy-perl"
version: "0.3.3-7+b1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/Lucy::Docs::Tutorial::FieldType"
---

# Lucy::Docs::Tutorial::FieldType(3pm)

Specify per-field properties and behaviors.

## NAME

Lucy::Docs::Tutorial::FieldType - Specify per-field properties and behaviors.

## DESCRIPTION

The Schema we used in the last chapter specifies three fields:

```
    my $type = Lucy::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 `"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 `"url"` field to a different FieldType.

### StringType

Instead of FullTextType, we'll use a 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 = Lucy::Plan::StringType->new( indexed => 0 );
    $schema->spec_field( name => 'url', type => $url_type );
```

To observe the change in behavior, try searching for `"us_constitution"` both before and after changing the Schema and re-indexing.

### Toggling 'stored'

For a taste of other FieldType possibilities, try turning off `"stored"` for one or more fields.

```
    my $content_type = Lucy::Plan::FullTextType->new(
        analyzer => $polyanalyzer,
        stored   => 0,
    );
```

Turning off `"stored"` for either `"title"` or `"url"` mangles our results page, but since we're not displaying `"content"`, turning it off for `"content"` has no effect -- except on index size.

### Analyzers up next

Analyzers play a crucial role in the behavior of FullTextType fields.  In our next tutorial chapter, Lucy::Docs::Tutorial::Analysis, we'll see how changing up the Analyzer changes search results.
