【问题标题】:Cannot index document in elasticsearch while performing string operation执行字符串操作时无法在弹性搜索中索引文档
【发布时间】:2015-12-31 06:03:32
【问题描述】:

我必须在 elasticsearch 中对存储在文件中的文档进行索引,并且在对文档执行字符串操作时对文档进行索引。 (我必须对线路进行分区并单独使用拆分)

rec = open(file)

for line in rec:

    val_1 = line.partition(' ')[0].strip()
    val_2 = line.partition(' ')[1].strip()
    #print   str(val_1) + " " + str(val_2)
    es.index(index="test", doc_type="trial", id = val_1, body = val2)

我可以打印这一行,但由于某种原因不能索引它。它抛出以下错误。

文件“C:\Python27\lib\site-packages\elasticsearch\client\utils.py”,第 69 行,在 >_wrapped return func(*args, params=params, **kwargs)

文件“C:\Python27\lib\site-packages\elasticsearch\client__init__.py”,第 >261 行,索引为 _make_path(index, doc_type, id), params=params,body=body)

文件“C:\Python27\lib\site-packages\elasticsearch\transport.py”,第 307 行,在 >perform_request status, headers, data = connection.perform_request(method, url, params, body, ignore=ignore , 超时=超时)

如果我在循环中执行这些操作,这个错误是一样的

es.index(index = "test", doc_type= "trial", id = line.partition(' ')[0].strip(), body = line.partition(' ')[2].strip())

我是否以错误的方式发送参数?我应该从哪里着手解决这个问题。

【问题讨论】:

    标签: python elasticsearch


    【解决方案1】:

    我找到了解决方案:这确实是一个愚蠢的错误。 我写的是这个

    es.index(index="test", doc_type="trial", id = val_1, body = val2)
    

    我错过的是正确格式化正文。 应该是

    es.index(index="test", doc_type="trial", id = val_1, body = {"name": val2 } )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-12
      • 1970-01-01
      • 2015-12-18
      • 2015-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多