2016-06-13 7 views
0

"access_type"이라는 필드가있는 일부 문서의 색인이 있습니다. "교수"또는 "학생"중 두 가지 값을 가질 수 있습니다. "access_type"의 값으로 "faculty"가있는 문서의 경우 교수진 이름 목록 인 "faculties"라는 다른 필드가 있습니다. 그래서 예를 들어 문서는 다음과 같습니다elasticsearch 쿼리에서 다음 조건을 구현하는 방법은 무엇입니까?

{ 
    "access_type": "faculty", 
    "faculties": [ 
     "facultyId1", 
     "facultyId2", 
     "facultyId3" 
    ] 
} 

을 이제 우리는 두 개의 입력이 하나가 access_type위한 것이며 또 다른 학부에 대해 말할 경우. "faculty"및 "facultyId4"입력을받는 경우 먼저 "faculty"액세스 유형과 일치하는 모든 문서를 필터링하고 "facuultyId4"가 "faculties"필드를 검색해야하는 결과 결과를 필터링해야합니다. "facultyId4"는 위의 문서에 없으므로 적중으로 간주해서는 안됩니다. elasticsearch 쿼리로 어떻게 구현할 수 있습니까?

답변

0

희망이 있으면 유용 할 것입니다.

GET index/type/_search 
{ 
    "query": { 
     "filtered": { 
      "filter": { 
       "and": { 
        "filters": [ 
        { 
         "query": { 
          "match": { 
           "access_type": "faculty" 
          } 
         } 
        }, 
        { 
         "query": { 
          "match": { 
           "faculties": "facultyId4" 
          } 
         } 
        } 
        ] 
       } 
      } 
     } 
    } 
} 
관련 문제