대량 메소드 NEST에서 까지 Eldersearch에 색인 하위 레코드을 사용하는 데 문제가 있습니다.탄성 검색 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"));
}
I 개별적으로 인덱스 질량 금액에 싶지 않아요. IndexMany를 사용하여 하위 레코드를 대량으로 인덱스하고 싶습니다. 누군가 내가 잘못하고있는 것을 지적 할 수 있습니까?
다행히 당신은 그 밑바닥에 있습니다. 배치 크기 및 클러스터에 보낼 수있는 동시 배치 요청 수와 함께 플레이하십시오. –
감사합니다. 동시 요청은 생각하지 않았습니다. 정말 좋은 생각입니다. 아마도 대량 비동기? –
작업 기반의 'BulkAsync' 메소드가 이미 존재하므로, 그것들의 콜렉션을 사용하여 동시 대량 요청을 시작할 수 있습니다. 이것을 달성하는 방법에 대한 아이디어는'master'의'BulkAll'을보십시오 - https://github.com/elastic/elasticsearch-net/blob/52541d0a472b6be85f5fe5d966374655671a3d37/src/Nest/Document/Multiple/BulkAll/ElasticClient -BulkAll.cs. 다음은이 문제에 대한 논의가 담긴 홍보 자료입니다. https://github.com/elastic/elasticsearch-net/pull/2162 –