2017-04-17 4 views
0

탄성 찾기 1.5에서 5.1로 마이그레이션 할 때 문제가 있습니다. 이 쿼리는 집계 나에게 올바른 doc_count을주고있다집계, 쿼리 컨텍스트 및 필터 컨텍스트가 Elasticsearch에서 작동하지 않음 5.1

{ 
    "_source":["_id","spotlight"], 
    "query":{ 
     "filtered":{ 
      "filter":{ 
       "and":[ 
        {"term":{"gender":"female"}}, 
        {"range":{"lastlogindate":{"gte":"2016-10-19 12:39:57"}}} 
       ] 
      } 
     } 
    }, 
    "filter":{ 
     "and":[ 
      {"term":{"maritalstatus":"1"}} 
     ] 
    }, 
    "sort":[{"member2_dummy7":{"order":"desc"}}], 
    "size":"0", 
    "aggs": { 

     "maritalstatus": { 

      "filter": {}, 
      "aggs" : { 

       "filtered_maritalstatus": {"terms":{"field":"maritalstatus","size":5000}} 
      } 
     } 
    } 
} 

: 1.5 쿼리 - 은 다음 내 탄성 검색입니다. 이 doc_count는 쿼리 컨텍스트에 의해 반환 된 결과 집합에 대해 계산되며 필터 컨텍스트를 무시합니다.

{ 
    "_source":["_id","spotlight"], 
    "query":{ 
     "bool":{ 
      "must":[ 
       {"term":{"gender":"female"}}, 
       {"range":{"lastlogindate":{"gte":"2016-10-19 12:39:57"}}} 
      ], 
      "filter":{ 
       "bool":{ 
        "must":[ 
         {"term":{"maritalstatus":"1"}} 
        ] 
       } 
      } 
     } 
    }, 
    "sort":[{"member2_dummy7":{"order":"DESC"}}], 
    "size":"0", 
    "aggs": { 

     "maritalstatus": { 

      "filter": {}, 
      "aggs" : { 

       "filtered_maritalstatus": {"terms":{"field":"maritalstatus","size":5000}} 
      } 
     } 
    } 

} 

을하지만 탄성 검색 5.1, 그것은 나에게 집계 잘못 doc_count을 반환 :

나는 탄성 검색 5.1에서 동일한 쿼리를 작성했습니다. 쿼리 컨텍스트에서 필터를 사용하고 있으므로 잘못된 doc_cout을 반환하고 있다고 생각합니다. 누군가가 탄성 검색 5.1에서 쿼리와 필터를 분리하는 정확한 방법을 말해 줄 수 있습니까?

+0

당신이'여성 찾고 있던 1.5 당신에게 첫 번째 항 쿼리를 확인합니다

ES 5.1에서 이에 해당하는 쿼리는 다음 (단순히 bool/filter로 대체됩니다 filtered/filterpost_filter로 이름이 변경 최상위 filter)입니다 '5.1에서'여성'을 찾고있었습니다. 'term' 질의에서 많은 부분을 차지합니다. 검색어를 '5.1'에서 '여성'에서 '여자'로 변경하고 결과를 확인하십시오. 또한 '5.1'쿼리의 타임 스탬프가 '1.5'쿼리의 쿼리보다 '5 초'더 깁니다. – avr

답변

2

1.5 쿼리는 사용자가 5.1 쿼리에서 제거한 post_filter을 사용합니다.

{ 
    "_source": [ 
    "_id", 
    "spotlight" 
    ], 
    "query": { 
    "bool": { 
     "filter": [ 
     { 
      "term": { 
      "gender": "female" 
      } 
     }, 
     { 
      "range": { 
      "lastlogindate": { 
       "gte": "2016-10-19 12:39:57" 
      } 
      } 
     } 
     ] 
    } 
    }, 
    "post_filter": { 
    "term": { 
     "maritalstatus": "1" 
    } 
    }, 
    "sort": [ 
    { 
     "member2_dummy7": { 
     "order": "desc" 
     } 
    } 
    ], 
    "size": "0", 
    "aggs": { 
    "maritalstatus": { 
     "filter": {}, 
     "aggs": { 
     "filtered_maritalstatus": { 
      "terms": { 
      "field": "maritalstatus", 
      "size": 5000 
      } 
     } 
     } 
    } 
    } 
} 
+0

Val에 감사드립니다. 이것은 나를 위해 일했습니다. –

+0

도움이 되니 기쁩니다! – Val

+0

도움이된다면 언제든지 수락 해주십시오. ;-) – Val