elasticsearch 弹性搜索索引
在当前的项目中,我希望改进搜索功能。在网上读了一些东西后,我决定去Elasticsearch。所以我有几个问题。 我已经用数据填充了生产数据库。为该数据库编制索引的最佳方法是什么? 当我想将新记录添加到数据库中时,我是否需要将其添加到弹性搜索中?或者可能创建某种作业来为数据索引一段时间?elasticsearch 弹性搜索索引,elasticsearch,indexing,elasticsearch,Indexing,在当前的项目中,我希望改进搜索功能。在网上读了一些东西后,我决定去Elasticsearch。所以我有几个问题。 我已经用数据填充了生产数据库。为该数据库编制索引的最佳方法是什么? 当我想将新记录添加到数据库中时,我是否需要将其添加到弹性搜索中?或者可能创建某种作业来为数据索引一段时间? 我们如何在两个数据库(生产数据库、Elasticsearch数据库)中保持数据一致性 欢迎提供任何建议、链接、评论等 谢谢我不知道您是否还需要答案,但我目前使用Logstash。我基本上有一个用于输入的JDBC
我们如何在两个数据库(生产数据库、Elasticsearch数据库)中保持数据一致性 欢迎提供任何建议、链接、评论等
谢谢我不知道您是否还需要答案,但我目前使用Logstash。我基本上有一个用于输入的JDBCSQL插件和用于输出的elasticsearch插件。基本上,您可以配置一个配置文件,设置连接,执行查询,然后进行数据转换和输出 如果您查看以下位置的文档: 下面可以看到一个配置示例,我已经了解到,您可以计划将数据从sql数据库传输到索引,尽管我没有亲自设置 请记住,您需要确保此数据传输的安全,sql插件确实为此提供了支持
input {
jdbc {
jdbc_driver_library => "file directory to sql driver"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_connection_string => ""
jdbc_user => ""
jdbc_password => ""
lowercase_column_names => false
statement => "SELECT IGF_UID AS id, IGF_NAME AS name FROM dbo.IGT_ENTITY"
}
}
filter {
if ![id] {
mutate {
replace => {"id" => "00000000-0000-0000-0000-000000000000"}
}
}
}
mutate {
remove_field => [ "@timestamp" ]
remove_field => [ "@version" ]
}
}
output {
elasticsearch {
hosts => "localhost"
index => "entities"
document_type => "entity"
manage_template => false
}
}