Laravel Scout не находит никаких записей

Я использую форму панели поиска, которая ищет в базе данных +-175 000 моделей. Я установил Scout в соответствии с документацией и импортировал все записи, используя scout:import.

Теперь я настроил функцию в своем контроллере, чтобы выполнять поиск и возвращать все записи, но записи всегда пусты, независимо от того, что я ищу.

веб.php:

Route::post('/act/search', ['uses' => 'ActController@searchAct', 'as' =>'searchAct']);

ActController@searchAct:

public function searchAct(Request $request)
{
    $actes = Act::search($request->search)->paginate(100);
    return view('act')->with('actes', $actes);
}

Форма:

<form class="navbar-form navbar-left" action="{{ route('searchAct') }}" method="post">
    {{ csrf_field() }}
    <div class="form-group">
        <input type="text" name="search" id="search" class="form-control" placeholder="Search">
    </div>
    <button type="submit" class="btn btn-default">Search</button>
</form>

Насколько я вижу, это должно работать, но dd($actes) говорит, что коллекция пуста. Я включил use Searchable; Entrait в свою модель. Scout нормально индексирует записи: все [App\Act] записей импортированы.


person xTheWolf    schedule 15.02.2017    source источник
comment
Спасибо @Pierre Lebon. Кстати, есть ли простой способ удалить конечные пробелы на SO?   -  person xTheWolf    schedule 15.02.2017
comment
Я использую N++ в качестве редактора сообщений. В N++, Ctrl+A › Меню Правка › Пустая операция › Обрезать конечный пробел. Бонус: пустая операция › Tab to Space — ключ к хорошему коду с отступом.   -  person Drag and Drop    schedule 15.02.2017
comment
Спасибо. Я обнаружил, что индексный файл не создан. Я использую Хоумстед. На моем компьютере с Windows в папке хранилища нет индексного файла.   -  person xTheWolf    schedule 15.02.2017
comment
У вас есть джоб-раннер для фоновых задач?   -  person jessecurry    schedule 25.02.2019


Ответы (1)


У меня была аналогичная проблема несколько дней назад, и, как упоминалось ранее в одном из комментариев выше, laravel-scout не создавал индексный файл, но я не мог понять, почему. Возможно, люди, создавшие пакет, задумали его таким из соображений производительности.

В любом случае, в моем собственном случае я интегрировал TNTSearch доступный здесь (с простой для понимания документацией), чтобы сделать индексацию для меня.

person user28864    schedule 04.08.2018