나는 둥지를 처음 사용하기 때문에 나는 내가 생각하는 것처럼 내 쿼리를 작성하지 않을 가능성이 높습니다. 나의 질문은 남자에게 물고기를주는 것보다 물고기를 가르치기위한 라인에 더 가깝다. 그러나, 나는 현재의 문제를 예제로 사용하겠습니다.Nest 쿼리는 어떻게 디버깅합니까?
ElasticSearch에 Series
유형의 여러 문서가 있습니다. 나는 쿼리 관련된 정보 만 가진 속성과 공공 수정없이 아래 그것을 스텁 것 :
class Series
{
string Id {get; set;}
DateTime StartDate {get; set;}
DateTime EndDate {get; set;}
HashSet<Role> ReleasableTo {get; set;}
}
이 모든 벌금과 멋쟁이입니다. 나는 할 수있다 Get()
Series
문제 없음 객체. 내가 겪고있는 문제는 Nest가 내 쿼리를 어떻게 포맷하는지 파악하려고하는 것입니다. 나의 즉각적인 목표는 가장 최근의 Series
을 Role.Visitor
으로 해제하는 것입니다. 나는 둥지 같은 쿼리 설정 : 그것은 단지 ReleasableTo
내 Role.Visitor
을 수있는 사람을 고려, 그래서 내 마음에
ISearchResponse<Series> response = client
.Search<Series>(r =>
r.Filter(f =>
f.Term<Role>(t=>t.ReleasableTo.First(), Role.Visitor))
.SortDescending(ser => ser.EndDate).Size(1));
을,이 시리즈를 필터링하는 쿼리를 생성해야 최종 날짜 별 종류 및 한도를 반전 한 사람에게 결과가 돌아왔다. 그게 내가 원하는거야. 시리즈 중 수천 개의 레코드에서 약 90 %가이 프로파일에 적합합니다. 불행히도 쿼리는 0 개의 결과를 반환합니다. 오류가없고 결과가 없습니다. 내가 모르는 것은 Nest가 이해할 수없는 쿼리 구조를 생성하고 있거나 단순히 ElasticSearch를 충분히 알지 못한다면 API를 잘못 사용하는 것입니다. Filter
조항을 삭제하면 결과가 나오지만 모든 사람이 볼 수있는 것은 아닙니다.
Nest가 생성하고 ElasticSearch로 보내는 JSON을 보려면 어떻게해야합니까?
"검색어"를 입력하면 매우 유용합니다. { "releasableTo": "방문자"}) 나는 내가 원하는 것을 얻는다. 내 인덱스는 미세 조정이 필요하다고 생각합니다. –