私はElasticSearchに新しいデータを挿入しようとすると、私はPythonで壁に当たっています。ElasticSearch不良インサート属性
ElasticSearchとPythonスクリプトの間の接続は同じサーバー上で実行されますが、私がそれを実行しているときに私のreqeustのインデックスを作成しようとしています。
それは私が考えるように、1000リクエストやsomtingのように処理するのに長い時間がかかります。
私はスクリプトを実行してから再インデックスを実行する前にインデックスを挿入しないでください。
私のピトンコードはこのように見えます。その助けることができる場合
es = Elasticsearch([{'host': str(config['elastic']['host']), 'port': str(config['elastic']['port'])}])
res = es.index(index="test-index", doc_type='products', id=product['uuid'], body=data)
print(res['created'])
が、その後、私は、データベース内のわずか約200から250.000書類を持って、私は理解できない理由thatsの理由をその挿入がとても遅い、およびインデックスから取得することは非常に速いです。
最終的なコードサンプル - バルクに
es = Elasticsearch([{'host': str(config['elastic']['host']), 'port': str(config['elastic']['port'])}])
data = {'field':'value'}
bulk = ""
bulk = bulk + '{"_op_type": "index", "_index": "index-name", "_type": "doc-type", "_id": "id-need-effect", "doc" : "'+ json.dumps(data) +'"}\n'
bulk = bulk + '{"_op_type": "delete", "_index": "index-name", "_type": "doc-type", "_id": "id-want-to-delete"}\n'
es.bulk(body=bulk)
思い出してくれる新しい行ごとに使用する方法は、新しい(\ n)を追加し、この場合には、あなたはもはや私が前に打つperfomcesの問題にヒットしません。
が見https://www.elastic.co/guide/en/elasticsearch/guide/current/near-real-time.htmlを持っています#refresh-api –