elasticsearch,Csv,Import,elasticsearch" /> elasticsearch,Csv,Import,elasticsearch" />

Csv 如何从文本文件填充弹性搜索索引?

Csv 如何从文本文件填充弹性搜索索引?,csv,import,elasticsearch,Csv,Import,elasticsearch,我计划使用一个弹性搜索索引来存储一个拥有290万条记录的庞大城市数据库,并在我的Laravel应用程序中将其用作搜索引擎 问题是:我都有MySQL数据库和CSV文件中的城市。该文件有大约300MB的内存 如何以最快的速度将其导入索引?为了提高效率,您需要使用批量API并试验数据块大小 如果您使用python,请看一看我已经通过使用解决了这个导入问题 我的导入脚本如下所示: input { file { path => ["/home/user/locati

我计划使用一个弹性搜索索引来存储一个拥有290万条记录的庞大城市数据库,并在我的Laravel应用程序中将其用作搜索引擎

问题是:我都有MySQL数据库和CSV文件中的城市。该文件有大约300MB的内存


如何以最快的速度将其导入索引?

为了提高效率,您需要使用批量API并试验数据块大小


如果您使用python,请看一看

我已经通过使用解决了这个导入问题

我的导入脚本如下所示:

input {
      file {
          path => ["/home/user/location_cities.txt"]
          type => "city"
          start_position => "beginning"
      }
}

filter {
    csv {
        columns => ["region", "subregion", "ufi", "uni", "dsg", "cc_fips", "cc_iso", "full_name", "full_name_nd", "sort_name", "adm1", "adm1_full_name", "adm2", "adm2_full_name"]
        separator => "  "
        remove_field => [ "host", "message", "path" ]
    }
}

output {
    elasticsearch {
        action => "index"
        protocol => "http"
        host => "127.0.0.1"
        port => "9200"
        index => "location"
        workers => 4
    }
}
此脚本将不带分隔符的制表符分隔的文件导入名为
location
的索引,类型为
city


要运行脚本,需要在安装/提取日志存储的文件夹中运行
bin/logstash-f import\u script\u file

虽然几乎是重复的。类似的问题和类似的文件大小。@GolezTrol这个问题没有一个明确的答案。我无法从中提取问题的解决方案…:/即使使用批量API,速度也非常慢。正如我在回答中所解释的,我已经使用了这个导入。谢谢你的帮助。