2017-08-22 3 views
1

ローカルESサーバーelasticsearch例外SerializationError

es.index(index='alertnagios', doc_type='nagios', body=jsonvalue) 

しかし、私は、スクリプトが正常に実行され、ESサーバをクラウドにデータを送信しようとしていますし、それは私はいくつかのドキュメントのインデックスを作成した後、いくつかのドキュメントをインデックスされます私は私のローカルホストESサーバーにデータを送信していたときに、同じスクリプトが正常に動作している

Traceback (most recent call last): 
    File "scriptfile.py", line 78, in <module> 
    es.index(index='test', doc_type='test123', body=jsonvalue) 
    File "/usr/local/lib/python2.7/dist-packages/elasticsearch/client/utils.py", line 73, in _wrapped 
    return func(*args, params=params, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/elasticsearch/client/__init__.py", line 298, in index 
    _make_path(index, doc_type, id), params=params, body=body) 
    File "/usr/local/lib/python2.7/dist-packages/elasticsearch/transport.py", line 342, in perform_request 
    data = self.deserializer.loads(data, headers.get('content-type')) 
    File "/usr/local/lib/python2.7/dist-packages/elasticsearch/serializer.py", line 76, in loads 
    return deserializer.loads(s) 
    File "/usr/local/lib/python2.7/dist-packages/elasticsearch/serializer.py", line 40, in loads 
    raise SerializationError(s, e) 
elasticsearch.exceptions.SerializationError: (u'order=0></iframe>', JSONDecodeError('No JSON object could be decoded: line 1 column 0 (char 0)',)) 

私はインスタンス

をしてくださいクラウドにデータを送信していたときに、それが動作していない理由を、次のエラーを取得することは、私は知りません助けてください

答えて

1

バルクインデックスメソッドを使用して問題が解決されました。私たちがローカルサーバーにインデックスを作成しているときは、ドキュメントを順番にインデックス化しても問題はありませんが、メモリの問題と接続の問題から克服するバルクインデックス方法に従う

私たちがバルクインデックス方法に従えば、すべてのdocumnetsを一度elasticsearchにインデックスし、何度も何度も接続を開く必要がないので、時間がかかりません。ここ

は私のコードです

from elasticsearch import Elasticsearch, helpers  

jsonobject= { 
    '_index': 'index', 
    '_type': 'index123', 
    '_source':jsonData 
} 
actions = [jsonobject] 
helpers.bulk(es, actions, chunk_size=1000, request_timeout=200) 
関連する問題