2017-02-28 2 views
0

탄성 검색은 일반적으로 미리 정의 된 클래스와 함께 작동합니다. 동적 클래스를 사용하려면 어떻게해야합니까? 예 : 다음 여기에elasticsearch nest에서 동적 객체 색인화

var result = clientConnection.Search<**TicketData**>(

s => s 
.Aggregations(

a => a 
    .DateRange(

"L1", d => d 
     .Field(p => p.timestamp) 
      .Ranges(
      r => r.To("2016-10-09T15:01:06+00:00"), 
      r => r.From("2016-09-27T02:09:17+00:00") 
     ) 
    ) 
) 
); 

ticketdata 클래스가 미리 정의되는 특정 필드를 검색 할 가정하자. 우리는 다음과 같은 것을 가질 수 있습니까

var result = clientConnection.Search<ANYDYNAMICCLASS>(s => s 

.Aggregations(a => a 

.DateRange("L1", d => d 

.Field(p => p.timestamp) 

      .Ranges(
      r => r.To("2016-10-09T15:01:06+00:00"), 
      r => r.From("2016-09-27T02:09:17+00:00") 
     ) 
    ) 
) 
); 

동적 클래스/동적 객체는이 작업을 수행 할 수 있습니까? 그것을 어떻게 할 수 있는지 예를 들어주십시오.

답변

1

Elasticsearch는 JSON 문서와 함께 작동하지만 C# POCO와 관련이 없습니다. 그러나 C#과 같이 강력한 형식의 언어를 사용하면 응용 프로그램에서 POCO로 Elasticsearch의 문서를 모델링하는 것이 중요하지만 그렇게 할 필요는 없습니다.

예를 들어,)를 검색하는 문서 형식으로 dynamic을 사용하고, 각각

var result = client.Search<dynamic>(s => s 
    .Index("index-name") 
    .Type("type-name") 
    .Aggregations(a => a 
     .DateRange("L1", d => d 
      .Field("timestamp") 
      .Ranges(
       r => r.To("2016-10-09T15:01:06+00:00"), 
       r => r.From("2016-09-27T02:09:17+00:00") 
      ) 
     ) 
    ) 

를 인덱스 및 유형을 지정하고 .Index().Type() 방법을 사용할 수있다;

클라이언트의 .LowLevel 속성을 통해 직접 Elasticsearch.Net에서 작업하고 스트림, 바이트 또는 문자열로 작업 할 수도 있습니다.

+0

예, 작동합니다. 로스! 정말 고맙습니다 – Nilanjana

관련 문제