Laravel 5.6和Algolia搜索返回空结果

时间:2018-08-26 14:22:39

标签: php laravel laravel-5.6 algolia

我在 Laravel 5.6 上使用 Algolia 。我遵循有关 Laravel 文档的教程。

$searches = Application::search($query)->get();
  

集合{#243▼#项目:[]}

当我搜索一个应用程序时,结果返回0个项目。

我键入以下命令:

php artisan scout:import "App\Models\Application"

要在Algolia上发送商品,并且它们出现在Algolia仪表板上,我可以看到它。

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Laravel\Scout\Searchable;

class Application extends Model
{
    use Searchable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'user_id',
        'title',
        'slug',
        'short_description',
        'long_description',
        'state',
    ];

    /**
     * @return string
     */
    public function searchableAs()
    {
        return 'applications';
    }

    /**
     * @return mixed
     */
    public function getScoutKey()
    {
        return $this->title;
    }
}

2 个答案:

答案 0 :(得分:3)

这是因为您自定义了“侦察员钥匙”,但没有自定义“侦察员钥匙名”。

当前,Scout将尝试构建与标题匹配ID的集合。一旦定义了getScoutKeyName方法(应该返回类似字符串title的方法)。它应该可以工作

答案 1 :(得分:-2)

您当前拥有App\Models的命名空间。您是否尝试过更新搜索调用以镜像此名称空间?:

$searches = App\Models\Application::search($query)->get();