Unknown setting [index.tokenizer.name_tokenizer.max_gram]

This is my babenkoivan/scout-elasticsearch-driver configuration:

<?php

namespace App;

use ScoutElastic\IndexConfigurator;
use ScoutElastic\Migratable;

class PersonIndexConfigurator extends IndexConfigurator
{
    use Migratable;

    /**
     * @var array
     */
    protected $settings = [
        'analysis' => [
            'analyzer' => [
                'name_analyzer' => [
                    'tokenizer' => 'name_tokenizer'
                ]
            ]
        ],
        'tokenizer' => [
            'name_tokenizer' => [
                'type' => 'edge_ngram',
                'min_gram' => 1,
                'max_gram' => 10,
                'token_chars' => [
                    'letter',
                    'digit'
                ]
            ]
        ]
    ];
}

when I try to create an index I get this error:

 Elasticsearch\Common\Exceptions\BadRequest400Exception  : {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"unknown setting [index.tokenizer.name_tokenizer.max_gram] please check that 
 any required plugins are installed, or check the breaking changes documentation for removed settings"}],"type":"illegal_argument_exception","reason":"unknown setting [index.tokenizer.name_tokenizer.max_gram] 
 please check that any required plugins are installed, or check the breaking changes documentation for removed settings","suppressed":[{"type":"illegal_argument_exception","reason":"unknown setting 
 [index.tokenizer.name_tokenizer.min_gram] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"},{"type":"illegal_argument_exception","reason":
 "unknown setting [index.tokenizer.name_tokenizer.token_chars] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"},{"type":"illegal_argument_exception",
 "reason":"unknown setting [index.tokenizer.name_tokenizer.type] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"}]},"status":400}

What is wrong with my configuration/mapping?

I have followed this documentation by the way:
https://www.elastic.co/guide/en/elasticsearch/reference/6.4/analysis-edgengram-tokenizer.html#_example_configuration_10

I realized my mistake; I misplaced 'tokenizer' to wrong level. It should have been placed under 'analysis' not sibling to. Such a silly mistake for me :slight_smile:

The correct version:

<?php

namespace App;

use ScoutElastic\IndexConfigurator;
use ScoutElastic\Migratable;

class PersonIndexConfigurator extends IndexConfigurator
{
    use Migratable;

    /**
     * @var array
     */
    protected $settings = [
        'analysis' => [
            'analyzer' => [
                'name_analyzer' => [
                    'tokenizer' => 'name_tokenizer'
                ]
            ],
            'tokenizer' => [
                'name_tokenizer' => [
                    'type' => 'edge_ngram',
                    'min_gram' => 1,
                    'max_gram' => 10,
                    'token_chars' => [
                        'letter',
                        'digit'
                    ]
                ]
            ]
        ]
    ];
}
1 Like

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.