首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将海量数据索引到Elasticsearch中

将海量数据索引到Elasticsearch中
EN

Stack Overflow用户
提问于 2012-05-21 15:41:22
回答 3查看 10.8K关注 0票数 6

我是elasticsearch的新手,并且拥有巨大的数据( mysql表中超过16k的大行)。我需要将此数据推送到elasticsearch中,但在将其编入索引时遇到问题。有没有办法让索引数据更快?如何处理海量数据?

EN

回答 3

Stack Overflow用户

发布于 2014-05-30 04:25:06

Bulk API上扩展

您将向/_bulk发出POST请求

您的有效负载将遵循以下格式,其中\n是换行符。

代码语言:javascript
复制
action_and_meta_data\n
optional_source\n
action_and_meta_data\n
optional_source\n
...

确保您的json不是打印得很好的

可用的操作有indexcreateupdatedelete

大容量加载示例

回答您的问题,如果您只想将数据大容量加载到您的索引中。

代码语言:javascript
复制
{ "create" : { "_index" : "test", "_type" : "type1", "_id" : "3" } }
{ "field1" : "value3" }

第一行包含操作和元数据。在本例中,我们调用create。我们将把一个type1类型的文档插入到名为test的索引中,并手动分配一个id为3 (而不是elasticsearch自动生成的id)。

第二行包含映射中的所有字段,在本例中只是值为value3field1

您只需连接想要插入到索引中的任意数量的内容。

票数 3
EN

Stack Overflow用户

发布于 2013-08-19 20:24:24

这可能是一个老帖子,但我想我无论如何都会对任何正在寻找解决这个问题的解决方案的人发表评论。用于弹性搜索的JDBC river插件对于从大量受支持的数据库中导入数据非常有用。

Link to JDBC' River source here..使用Git Bash的curl命令I放入以下配置文档,以实现ES实例和MySQL实例之间的通信-

代码语言:javascript
复制
curl -XPUT 'localhost:9200/_river/uber/_meta' -d '{
"type" : "jdbc",
"jdbc" : {
 "strategy" : "simple",
 "driver" : "com.mysql.jdbc.Driver",
 "url" : "jdbc:mysql://localhost:3306/elastic",
 "user" : "root",
 "password" : "root",
 "sql" : "select * from tbl_indexed",
 "poll" : "24h",
 "max_retries": 3,
 "max_retries_wait" : "10s"
 },
 "index": {
 "index": "uber",
 "type" : "uber",
 "bulk_size" : 100
 }
}'

确保您的mysql-connector-java-VERSION-bin位于river jdbc插件目录中,其中包含jdbc-river所需的JAR文件。

票数 2
EN

Stack Overflow用户

发布于 2012-05-24 16:44:13

试用批量api

http://www.elasticsearch.org/guide/reference/api/bulk.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10681203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档