ElasticSearch IndexКак импортировать данные в формате CSV, используя Logstash для завершения типа поля в Elasticsearch Suggester Создание
curl -XPOST 'http://localhost:9200/music/' -d '{}'
Field Mapping
curl -XPUT 'http://localhost:9200/music/_mapping/song' -d '
{
"properties": {
"name" : {
"type" : "string"
},
"suggest": {
"type" : "completion"
}
}
}'
LogStash конфигурационный файл, musicStash.config
input {
file {
path => "pathToCsv"
start_position => beginning
}
}
filter {
csv {
columns => ["id", "name", "suggest"]
separator => ","
}
}
output {
elasticsearch {
hosts => "localhost"
index => "music"
document_id => "%{id}"
}
}
Теперь, выполняя файл конфигурации logstash, получил следующее исключение в elasticsearch c onsole
failed to put mappings on indices [[music]], type [logs]
java.lang.IllegalArgumentException: Mapper for [suggest] conflicts with existing mapping in other types:
[mapper [suggest] cannot be changed from type [completion] to [string]]
at org.elasticsearch.index.mapper.FieldTypeLookup.checkCompatibility(FieldTypeLookup.java:117)
И ошибка получила в logstash консоли
response=>{"index"=>{"_index"=>"music", "_type"=>"logs", "_id"=>"5", "status"=>400,
"error"=>{"type"=>"illegal_argument_exception",
"reason"=>"Mapper for [suggest] conflicts with existing mapping in other types:\n[mapper [suggest] cannot be changed from type [completion] to [string]]"}}}, :level=>:warn}
Так как достичь elasticsearch автоматического заполнения путем импорта CSV-файла через Logstash.
Шел, как бы вы смогли импортировать несколько рекомендаций для сингла e document при использовании логсташа в качестве отдельного помощника для каждого документа? – Birdy