algolia 在 laravel 插件中按属性搜索(可选)

algolia search by attribute in laravel plugin (optionally)

Route::get('delete_project/{project_id}', function($project_id){

    $project = \Illuminate\Support\Facades\Auth::user()->projects()->where('project_id', $project_id)->get()->first();
    $index = Algolia::connection('main')->initIndex(\Illuminate\Support\Facades\Auth::user()->email);

    $result = $index->search($project->name, array('facetFilters' => 'project.name') );
    dd($result);

    $project->delete();

})->middleware('auth');

dd return 要么什么都没有,要么就是我所有的 algolia 项目,我只想带 project.id of $project->id.

我有以下结构:

  1. 我有一个 projects_issues 关系
  2. 当用户创建新问题时,该问题会保存到 algolia 并为其电子邮件地址建立索引
  3. 当用户删除项目时,所有问题都从服务器中删除,我也需要从 algolia 删除。 Algolia 目前处于试验阶段。

大概应该是这样的:

$result = $index->search("", ['facetFilters' => ['project.name:'.$project->name]]);

"" 因为查询将匹配所有内容 但 facetFilters 将只过滤具有良好项目名称的记录

尝试使用数字过滤器:https://www.algolia.com/doc/ruby#numeric-search-parameters

$args = [
    'facetFilters' => 'project.name',
    'numericFilters' => 'id=' . $project->id
];

$result = $index->search($project->name, $args);