バルクメソッド NESTからインデックスの子レコードをElasticsearchに使用して問題が発生しています。Elasticsearch C#NEST IndexMany Children
私は2.4.4
は、私のようなインデックスマッピングされてきたElasticSearch 2.3.5およびNESTを使用しています:
myindex
{
"mappings": {
"elasticparent": {},
"elasticchild": {
"_parent": {
"type": elasticparent
}
}
}
}
を私はIndexMany方法を使用して親オブジェクトをインデックス化しました:
client.IndexMany<elasticparent>(batch, "myindex");
これはすべてうまくいきます。
IndexManyを使用して子どものインデックスを作成したいと思います。これまでに試したことは次のとおりです。
client.Bulk(s => s.IndexMany(IenumerableOfChild,
(bulkDescriptor, record) =>
bulkDescriptor.Index("myindex").Type("elasticchild").Parent(record.Id)));
子と親は同じID整数を共有します。
私はエラーは発生しませんが、子どもたちは決してインデックスに登録されず、ドキュメントは総インデックスカウントに追加されません。それらを個別に索引付け
は作品:
foreach (var child in IenumerableOfChild
{
client.Index(child, descriptor => descriptor
.Parent(child.Id.ToString()).Index("myindex"));
}
私は個別にインデックスマス量にしたくありません。 IndexManyを使用して、子レコードを一括してインデックスしたいと思います。誰かが間違っていることを指摘できますか?
嬉しいです。バッチサイズとクラスタで同時に送信できる並行バッチリクエストの数が関係しています。 –
ありがとうございます。私は同時の要求を考えていませんでした。それは本当に良い考えです。おそらくバルク非同期ですか? –
タスクベースの 'BulkAsync'メソッドが既に存在します。そのため、それらのコレクションを使用して並行バルクリクエストを起動できます。これを達成する方法のアイデアについては 'master'の' BulkAll'を見てください - https://github.com/elastic/elasticsearch-net/blob/52541d0a472b6be85f5fe5d966374655671a3d37/src/Nest/Document/Multiple/BulkAll/ElasticClient -BulkAll.cs。それについてのPRもあります。問題の議論があります:https://github.com/elastic/elasticsearch-net/pull/2162 –