2016-12-20 4 views
0

Elasticsearch 1.7 및 elastic4s DSL을 사용하고 있습니다. 내 문제는 추가 할 수 없으며 중첩 된 문서에 & 또는 필터를 추가 할 수 없습니다.Elasticsearch 중첩 필터링 (elastic4s, scala)

var request: SearchDefinition = search in "myIndex" -> "candidate" query { 
    filteredQuery query { 
    matchAllQuery 
    } filter { 
    and(filters) 
    } 
} 

으로 :

def filtering(interviewAndCandidates: IntCand)(implicit user: PublicUser): Seq[FilterDefinition] = { 
nestedFilter("interviews").filter(termFilter("clientId", user.id)) :: 
List(or(interviewAndCandidates.interviews.map(state ⇒ nestedFilter("interviews").filter(termFilter("stateId", state))))) 
} 

그런 다음 나는 쿼리를 작성 : 여기

{ 
    "name": "Samy" 
    "interviews": [ 
    { 
     "clientId": 0, 
     "stateId": "CANCELED", 
    }, 
    { 
     "clientId": 1, 
     "stateId": "APPROVED" 
    } 
    ] 

내 필터입니다 : 는 예를 들어, 다음의 경우 클래스 후보의 내 인스턴스의 JSON 표현입니다 :

case class IntCand(interviews: List[String]) 

case class Candidate(name: String, interviews: List[Interview]) 

case class Interview(clientId: Long, stateId: String) 
내가 ("취소됨"목록()) IntCand 및 클라이언트 ID = 1을 필터링 할 때 (210)

문제는, 응답이 나에게 후보를 보여주는 데이터를 비정규로 내가 성공

답변

0

을 (내가 된 ClientID과 인터뷰를 필터링하려는 경우)