2017-10-12 3 views
0

시작일과 종료일 사이의 날짜를 기준으로 탄성 검색 결과를 필터링하려고합니다. 유효 검색 버전은 1.7.6입니다.날짜 범위 쿼리를 수행 할 때 탄성 검색이 정확한 결과를 제공하지 않음

완전히 잘못된 결과를 제공합니다. 색인을 쿼리하는 데 놀라운 기능을 사용하고 있습니다.

스키마는 귀하의 range 쿼리가 잘못

"starting_on": { 
      "type": "date", 
      "format": "dateOptionalTime" 
      } 
My query is below:-- 

      GET XX/XX/_search 
      { 
      "_source": [ 
       "arrivals.starting_on", 
       "arrivals.ending_on" 
       ], 
       "query": { 
       "filtered": { 
      "filter": { 
       "bool": { 
      "must": [ 
      { 
       "range": { 

       "starting_on": { 
        "gte" : "2017-10-14", 
        "format": "dateOptionalTime", 


       }, 
       "ending_on": { 
        "lte" : "2017-10-17", 
        "format": "dateOptionalTime", 

       } 
       } 

      } 
      ] 
     } 
     } 
    } 
    } 
} 
+0

당신이 무엇을 감안할 때 '_source'에서 범위 쿼리'starting_on'이'arrivals.starting_on'이 아니어야합니다 ('ending_on'과 동일합니까?)? – Val

+0

arrivals.starting_on 또는 arrivals.ending_on을 수행 할 때 쿼리에서 조회가 발생하지 않습니다. – user2873744

답변

0

, 당신은 거기에 두 개의 필드를 가질 수 없습니다, 당신은 다음과 같이 대신 두 range 쿼리가 필요 :

GET XX/XX/_search 
{ 
    "_source": [ 
    "arrivals.starting_on", 
    "arrivals.ending_on" 
    ], 
    "query": { 
    "filtered": { 
     "filter": { 
     "bool": { 
      "must": [ 
      { 
       "range": { 
       "arrivals.starting_on": { 
        "gte": "2017-10-14", 
        "format": "dateOptionalTime" 
       } 
       } 
      }, 
      { 
       "range": { 
       "arrivals.ending_on": { 
        "lte": "2017-10-17", 
        "format": "dateOptionalTime" 
       } 
       } 
      } 
      ] 
     } 
     } 
    } 
    } 
} 
+0

행운이 있나요? – Val

관련 문제