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 要么什么都不返回,要么返回我所有的 algolia 项目,我只想拿 project.id $project->id 的项目。

我有以下结构:

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

尝试使用 numericFilters: https://www.algolia.com/doc/ruby#numeric-search-parameters

$args = [
    'facetFilters' => 'project.name',
    'numericFilters' => 'id=' . $project->id
];
$result = $index->search($project->name, $args);

它应该是这样的:

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

" 作为查询将匹配所有内容但 facetFilter 将仅筛选为具有良好项目名称的记录