나는 elasticsearch를 this 멋진 튜토리얼에서 배우고 있습니다. 는 'nusearch'인덱스 샘플 코드가 주어 만들려면 :ElasticSearch 색인에 특정 유형 매핑하기
Client.CreateIndex("nusearch", i => i
.Settings(s => s
.NumberOfShards(2)
.NumberOfReplicas(0)
.Analysis(Analysis)
)
.Mappings(m => m
.Map<Package>(MapPackage)
)
);
이 패키지의 클래스는 "nusearch"인덱스에 저장됩니다 NEST에 알려주는 .Mappings 부분이 있습니다. 왜 그런 오류를받을 수 있나요 :
Index name is null for the given type and no default index is set. Map an index name using ConnectionSettings.MapDefaultTypeIndices() or set a default index using ConnectionSettings.DefaultIndex().'
그런 식으로?에 인덱스 포장 할 때
foreach (Package pack in packages)
{
Client.Index<Package>(pack);
}
ConnectionSettings의의 구성에 감소 :
_connectionSettings = new ConnectionSettings(CreateUri(9200));
난 왜 패키지 유형이 특정 색인에 저장되어야 ConnectionSettings 정보를 다시 추가하는 것이 궁금합니다 ? ConnectionSettings에서 특정 POCO를 매핑해야합니까? 응용 프로그램이 크고 매핑 할 수있는 유형이 많은 경우 어떻게해야합니까? 그게 어색하지 않은가? CreateIndex 메서드는 이러한 종류의 정보를 제공하는 더 나은 곳입니다.
_connectionSettings = new ConnectionSettings(CreateUri(9200))
.MapDefaultTypeIndices(m => m.Add(typeof(Package), "nusearch"))
나 :
.InferMappingFor<Package>(i => i
.TypeName("package")
.IndexName("nusearch"))
)
방법 InferMappingFor이 MapDefaultTypeIndices의 버전을 확장
나는 이미 그런 코드에 의해 가능하다는 것을 확인했다?
내가 알 수있는 경우 : . 유형 이름은 정확히 ElasticSearch를 의미합니까? 그것을 사용하는 가장 좋은 방법은 무엇입니까? 그것은 생략 될 때 작동하므로 검색 할 때 의미가 있다고 생각합니까?
답장을 보내 주셔서 감사합니다.