Типы не могут быть предоставлены в запросах сопоставления put, если для параметра include_type_name установлено значение true в lumen с эластичным поиском 7.6.2
Я использую пакет 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
}
Как исправить эту проблему
1 ответ
Вы указываете тип в своем коде создания индекса, удалите media
type из вашего индекса, поскольку типы не рекомендуются, см. раздел об удалении типов для получения дополнительной информации.
Обратите внимание, что в Elasticsearch 7.X все же можно найти обходной путь, чтобы настроить types
имея include_type_name
param, но это не рекомендуется, поскольку types
будет полностью удален в следующем выпуске Elasticsearch 8.X.
Чтобы использовать, создайте свой индекс с настраиваемым type
нравиться media
(по умолчанию _doc
упомянутый на вашем снимке экрана) в вашем случае вам нужно пройти include_type_name=true
для индексации API создания, шаблонов и сопоставлений, как указано в этом официальном блоге ES