2013-12-23 6 views
7

.net에서 탄성 검색을위한 클라이언트에 대한 소규모 연구를하고 있으며 NEST가이 문제에 대해 가장 지원되는 솔루션 중 하나임을 알았습니다.ElasticSearch NEST 쿼리에서 Raw Json을 반환하는 중

Nest의 문서를보고 있었는데 프런트 엔드에서 angularJs를 사용하고 있기 때문에 쿼리에서 원시 json을 출력하고 객체로 직렬화되는 것을 방지 할 수있는 방법을 찾지 못했습니다. 불필요한 단계로 클라이언트에 정보를 보내는 프로세스에 과부하가 걸립니다.

...... ...... 또한 serialization 프로세스를 어떻게 초과 할 수 있는지 알고 싶습니다.

나는 NEST가 servicesonack json serielizer를 위해 변경하고 싶은 Json.NET을 사용한다는 것을 발견했다.

감사합니다.

답변

9

안녕 페드로 당신이 당신이 강력하게 쿼리를 입력 할 수 있습니다

var searchDescriptor = new SearchDescriptor<ElasticSearchProject>() 
    .Query(q=>q.MatchAll()); 
var request = this._client.Serializer.Serialize(searchDescriptor); 
ConnectionStatus result = this._client.Raw.SearchPost(request); 
Assert.NotNull(result); 
Assert.True(result.Success); 
Assert.IsNotEmpty(result.Result); 

NEST이 작업을 수행하지만

request에 문자열로 elasticsearch에서 원시 응답이 문자열 .Result을 반환 할 수 있습니다 객체 또는 문자열이 될 수 있습니다. 내부 json을 사용하면 OK입니다. 직접 searchDescriptor를 전달하십시오.

+1

감사합니다. json.net serializer impl을 사용자 정의로 바꿀 수있는 방법이 있습니까? (가정 해 봅시다.) –

+0

@Martijn 전송되기 전에 전송되는 쿼리를 시각화하는 방법이 있습니까? – Dema

+0

result.Result가 현재 API에 존재하지 않는 것 같습니다. 지금이 방법은 무엇입니까? 나는 elasticsearch 서버 응답을 클라이언트에 직접 전달하기를 원합니다. 클라이언트가 자바 스크립트 라이브러리를 사용하여 faceting 등의 표준 ES 응답을 사용하기 때문에 감사합니다. – richardwhatever

관련 문제