Типы не могут быть предоставлены в запросах отображения пут, если для параметра include_type_name не задано значение true в люменах с elasti c search 7.6.2 - PullRequest
0 голосов
/ 28 апреля 2020

Я использую https://github.com/basemkhirat/elasticsearch пакет.

В es. php файл у меня ниже индексы

'indices' => [
        'media' => [
            'settings' => [
                'number_of_shards' => 2,
                'number_of_replicas' => 2,
                'analysis' => [
                    'filter' => [
                        'custom_english_stemmer' => [
                            'type' => "stemmer",
                            'name' => "english"
                        ],
                        "english_stop" => [
                            'type' => "stop",
                            'stopwords' => "_english_"
                        ]
                    ],
                    "analyzer" => [
                        'custom_lowercase_analyzer' => [
                            // 'type' => 'custom',
                            'tokenizer' => 'standard',
                            'filter' => [
                                'lowercase',
                                'english_stop',
                                "custom_english_stemmer"
                            ]
                        ]
                    ]
                ]
            ],
            'mappings' => [
                'properties' => [
                    'id' => [
                        'type' => 'long',
                        'index' => false,
                        'doc_values' => false,
                    ],
                    'title' => [
                        'type' => 'text',
                        "analyzer" => 'custom_lowercase_analyzer'
                    ]
                ]
            ]
        ]
    ]

Теперь, когда php artisan es:indices:create выполняется, настройки создаются, но отображение завершается неудачно с сообщением об ошибке.

{
  "error": {
    "root_cause": [
      {
        "type": "illegal_argument_exception",
        "reason": "Types cannot be provided in put mapping requests, unless the include_type_name parameter is set to true."
      }
    ],
    "type": "illegal_argument_exception",
    "reason": "Types cannot be provided in put mapping requests, unless the include_type_name parameter is set to true."
  },
  "status": 400
}

enter image description here

Как исправить этот выпуск

1 Ответ

1 голос
/ 28 апреля 2020

Вы предоставляете тип в своем коде создания индекса, удалите тип media из своего индекса, поскольку типы устарели, см. удаление типов для получения дополнительной информации.

Обратите внимание в Elasticsearch 7.X все еще можно сделать обходной путь для создания пользовательского types с параметром include_type_name, но это не является предпочтительным, так как types будет полностью удален в предстоящем Elasticsearch 8.X.

В порядке чтобы использовать создание индекса с пользовательскими type, такими как media (по умолчанию _doc указано на снимке экрана), в вашем случае необходимо передать include_type_name=true в API создания индекса, шаблона и сопоставления, как указано в этот официальный блог ES

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...