我正在将我的数据库迁移到ElasticSearch。它的当前大小小于3G,并且由于许多字段在表中很常见,所以我决定使用单个索引来存储它们。
这是我的Logstash配置:
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://localhost:3306/cinestop?
useUnicode=yes&characterEncoding=UTF-8"
jdbc_user => "root"
jdbc_password => "abc"
# The path to our downloaded jdbc driver
jdbc_driver_library =>
"/home/limafoxtrottango/Downloads/elasticsearch-jdbc-2.3.4.0/lib/mysql-connector-java-5.1.38.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
statement => "SELECT * FROM media_adult"
}
}
output {
stdout { codec => json_lines }
elasticsearch {
"hosts" => "localhost:9200"
"index" => "cinestop"
"document_type" => "media_adult"
}
}
我已经使用此表导入了上一个表(具有一些公共字段)。现在,我收到以下错误:
"Rejecting mapping update to [cinestop] as the final mapping would have more than 1 type: [media_adult, media_id]"}}}}
我已经阅读了文档,并且它提到ES不会让你在同一个索引中拥有不同类型的多个字段,因为Apache Lucene中的映射是如何完成的。但即使我做了
SELECT adult FROM media_adult
在配置文件中(结果表格中没有任何常用字段与之前导入的表格),错误不会消失。
有人可以告诉我,我做错了什么?我应该为每种类型创建一个单独的索引吗?
谢谢!