当前位置: 首页 > 面试题库 >

使用PyE的Elasticsearch大块索引

彭阳荣
2023-03-14
问题内容

我有一个简单的python脚本,用于索引包含一百万行的CSV文件

import csv
from pyes import *

reader = csv.reader(open('data.csv', 'rb'))

conn = ES('127.0.0.1:9200', timeout=20.0)

counter = 0
for row in reader:
        try:
                data = {"name":row[5]}
                conn.index(data,'namesdb',counter, bulk=True)
                counter += 1
        except:
                pass

这种方法效果很好,但是当我们进入成千上万的时候,它们的速度都呈指数下降。

我猜测如果我在较小的块中进行索引,ES的性能会更好。

有更有效的方法吗?sleep()会延迟帮助吗?还是有一种简单的方法可以通过编程将csv分成较小的块?

谢谢。


问题答案:

每运行N次

es.refresh()

这里的例子



 类似资料:
  • Elasticsearch 作为一个 Java 应用,本身的部署已经非常简单了。不过作为生产环境,还是有必要采用一些更标准化的方式进行集群的管理。Elasticsearch 官方提供并推荐使用 Puppet 方式部署和管理。其 Puppet 模块源码地址见: https://github.com/elastic/puppet-elasticsearch 安装方法 和其他标准 Puppet Modu

  • 输入将是大小约为5MB的文件类型。 我浏览了ES Java API和SpringData的示例,它们确实有插入JSON文档的教程。 但是关于使用File作为输入来创建文档/索引的任何帮助都是不可用的。

  • 问题内容: 我正在使用Solr进行索引和搜索。现在,我的新的数据被索引上elasticsearch。如何使用来自Elasticsearch的Solr索引进行组合搜索? 由于Solr和elasticsearch都是基于Apache Lucene 构建的,因此必须有一种方法/插件来使用Elasticsearch的Solr索引,对吗? 我的尝试: 我为此找到了一条河,但是elasticsearch从1.

  • 我有很多上面格式的日志,我想删除旧日志(比如超过5天的日志),方法是(在上面的日志(2019.02.13))范围内)。我已经通过查询进行了删除日志的查询。 我得到了以下错误: <代码>[解析\u异常]没有为[@时间戳]注册的[查询],且{行=1 注意:我使用NestJS调用elasticsearch api,并使用elasticsearch[6.4]。我不想使用elasticsearch策展人。

  • 问题内容: 我注意到,elasticsearch在晚上消耗了超过30GB的磁盘空间。相比之下,我要索引的所有日志的总大小仅为5 GB …嗯,甚至不是,实际上更像是2.5-3GB。是否有任何原因,有没有办法重新配置它?我正在运行ELK堆栈。 问题答案: 有许多原因导致Elasticsearch内部的数据比源数据大得多。一般而言,Logstash和Lucene都在努力为数据 添加 结构,而这些数据原本

  • 我使用的是Elasticsearch 2.3(服务器和java客户端) 原因是:MapPerParsingException[未能解析[id]];Nested:NumberFormatException[对于输入字符串:“2F3CC5D4-9C4C-4A49-9EBD-C8CD86758118”];在org.elasticsearch.index.mapper.fieldmapper.parse(