2017-11-10 9 views
0

geoSearchパラメータで私の藻類インデックスをリクエストしようとしています。検索後にwhereDateとwhereのすべてのパラメータを追加するまで、私のクエリは機能しています。Laravel scout algolia geosearch

リクエストを正しく行う方法を教えていただけますか?

おかげ

return Event::search('', function ($algolia, $query, $options) use ($lat, $lng, $radius){ 
      $location = [ 
       'aroundLatLng' => $lat.','.$lng, 
       'aroundRadius' => $radius * 1000, 
      ]; 

      $options = array_merge($options, $location); 

      return $algolia->search($query, $options); 
     })->whereDate('start_at', \Carbon\Carbon::parse($day))->where('end_at', '>=', 
      \Carbon\Carbon::parse($day))->orWhere('start_at', '<=', \Carbon\Carbon::parse($day))->where('end_at', 
      '>=', \Carbon\Carbon::parse($day))->orderBy('events.start_at')->orderBy('events.start_at')->get(); 

答えて

0

私は最善の方法は、あまりにもAlgoliaでどこ文を追加することだと思います。 Laravel Scoutは単純なwhere句のみを扱います(数値のみ)。 https://www.algolia.com/doc/guides/searching/filtering/

:あなたがここにフィルターに関連するドキュメントを見つけることができます

return Event::search('', function ($algolia, $query, $options) use ($lat, $lng, $radius){ 
     $custom = [ 
      'aroundLatLng' => $lat.','.$lng, 
      'aroundRadius' => $radius * 1000, 
      'filters' => 'start_at>12 AND end_at<16', 
     ]; 

     $options = array_merge($options, $custom); 

     return $algolia->search($query, $options); 
    })->get(); 

関連する問題