Docs Menu
Docs Home
/
Atlas
/ / / /

Whitespace Analyzer

The whitespace analyzer divides text into searchable terms (tokens) wherever it finds a whitespace character. It leaves all text in its original letter case.

You can see the tokens that the whitespace analyzer creates for a built-in sample document and query string when you create or edit an index in the Atlas UI Visual Editor. If you select Refine Your Index, the Atlas UI displays a section titled View text analysis of your selected index configuration within the Index Configurations section. If you expand this section, the Atlas UI displays the index and search tokens that the whitespace analyzer generates for each sample string.

Important

Atlas Search won't index string fields where analyzer tokens exceed 32766 bytes in size. If using the keyword analyzer, string fields which exceed 32766 bytes will not be indexed.

The following example index definition specifies an index on the title field in the sample_mflix.movies collection using the whitespace analyzer. To follow along with this example, load the sample data on your cluster and navigate to the Create a Search Index page in the Atlas UI following the steps in the Create an Atlas Search Index tutorial. Then, select the minutes collection as your data source, and follow the example procedure to create an index in the Visual Editor or JSON editor.

  1. Click Refine Your Index to configure your index.

  2. In the Index Configurations section, toggle Dynamic Mapping to off.

  3. In the Field Mappings section, click Add Field to open the Add Field Mapping window.

  4. Select title from the Field Name dropdown.

  5. Click Customized Configuration.

  6. Click the Data Type dropdown and select String if it isn't already selected.

  7. Expand String Properties and make the following changes:

    Index Analyzer

    Select lucene.whitespace from the dropdown.

    Search Analyzer

    Select lucene.whitespace from the dropdown.

    Index Options

    Use the default offsets.

    Store

    Use the default true.

    Ignore Above

    Keep the default setting.

    Norms

    Use the default include.

  8. Click Add.

  9. Click Save Changes.

  10. Click Create Search Index.

  1. Replace the default index definition with the following index definition.

    {
    "mappings": {
    "fields": {
    "title": {
    "type": "string",
    "analyzer": "lucene.whitespace",
    "searchAnalyzer": "lucene.whitespace"
    }
    }
    }
    }
  2. Click Next.

  3. Click Create Search Index.

The following query searches for the term Lion's in the title field.

db.movies.aggregate([
{
"$search": {
"text": {
"query": "Lion's",
"path": "title"
}
}
},
{
"$project": {
"_id": 0,
"title": 1
}
}
])
[
{ title: 'Lion's Den' },
{ title: 'The Lion's Mouth Opens' }
]

Atlas Search returns these documents by doing the following for the text in the title field using the lucene.whitespace analyzer:

  • Retain the original letter case for the text.

  • Divide the text into tokens wherever it finds a whitespace character.

The following table shows the tokens (searchable terms) that Atlas Search creates using the Whitespace Analyzer and, by contrast, the Simple Analyzer and Keyword Analyzer for the documents in the results:

Title
Whitespace Analyzer Tokens
Simple Analyzer Tokens
Keyword Analyzer Tokens

Lion's Den

Lion's, Den

lion, s, den

Lion's Den

The Lion's Mouth Opens

The, Lion's, Mouth, Opens

the, lion, s, mouth, opens

The Lion's Mouth Opens

The index that uses whitespace analyzer is case-sensitive. Therefore, Atlas Search is able to match the query term Lion's to the token Lion's created by the whitespace analyzer.

Back

Simple