2015-01-27 3 views
4

나는 다음과 같은 CloudSearch 쿼리 쿼리가 FQ 부분을 제외하고 작동Cloudsearch 경계 상자 필터

$query = array(
'query' => '(and expiry:[' . $time . ',} updatetime:[100,} type:\'all\')', 
'queryParser' => 'structured', 
'queryOptions' => '{"defaultOperator":"and"}', 
'sort' => 'distance asc', 
'return'=>'_all_fields,_score,distance', 
'size' => 5000, 
'expr'=> '{"distance":"haversin(' . $lat . ',' . $lon . ',location.latitude,location.longitude)"}', 
'start'=>$start, 
'fq'=>'location:[\'35.628611,-120.694152\',\'35.621966,-120.686706\']' 

); 

는 의도가 FQ는 경계 상자 영역 내에서 결과를 제한하는 것입니다있다. 그러나 거기에 그것을 가지고 있음에도 불구하고 결과를 제한하지 않습니다. 해당 지역 외부의 결과가 반환됩니다. 올바르게 작동하려면이 부분을 변경해야합니까? AWS 문서가 FQ는 실제로 filterQuery 또한 위치 지점 순서는 왼쪽 상단 떨어져 있음을 알아

, 하위로 예에서 참조 있지만

+0

궁극적으로 쿼리에서 생성되는 실제 GET 요청 URL을 갖고 있습니까? 나는 그것이 어떤 종류의 위치 fq를 포함하고 있는지 궁금 할 것이다. – alexroussos

+0

AWS 용 공식 PHP API를 사용하고 있기 때문에 API로 작성된 호출에 모두 번들로 제공되므로 API를 통해 추적하고 찾아서 찾을 수 있는지 확인합니다. 아마존에 대한 호출 –

+0

로깅을 통해 얻을 수 없다면 Charles (http://www.charlesproxy.com)와 같은 것을 사용하여 트래픽을 기록 할 수도 있습니다. – alexroussos

답변

3

나는이 문제

에 대한 해결책을 가지고 있습니다 -right

$query = array(
'query' => '(and expiry:[' . $time . ',} updatetime:[100,} type:\'all\')', 
'queryParser' => 'structured', 
'queryOptions' => '{"defaultOperator":"and"}', 
'sort' => 'distance asc', 
'return'=>'_all_fields,_score,distance', 
'size' => 5000, 
'expr'=> '{"distance":"haversin(' . $lat . ',' . $lon .   ',location.latitude,location.longitude)"}', 
'start'=>$start, 
'filterQuery'=>'location:[\'35.628611,-120.694152\',\'35.621966,-120.686706\']' 

); 
+0

당신이 솔루션을 찾았고 다행스럽게 돌아와 주셔서 감사합니다! – alexroussos