Поиск

Вы просматриваете документацию старой версии MoonShine. Рассмотрите возможность обновления вашего проекта до MoonShine 2.x.

# Основы

Здесь все просто! Для полнотекстового поиска необходимо указать, какие поля будут участвовать в поиске. Для этого необходимо их перечислить в возвращаемом массиве в методе search()

Если метод отсутствует либо возвращает пустой массив, то поисковая строка не будет отображаться

namespace MoonShine\Resources;
 
use MoonShine\Models\MoonshineUser;
 
class PostResource extends Resource
{
//...
 
public function search(): array
{
return ['id', 'title'];
}
 
//...
}

Если требуется fulltext поиск, то необходимо воспользоваться аттрибутом MoonShine\Attributes\SearchUsingFullText

namespace MoonShine\Resources;
 
use MoonShine\Attributes\SearchUsingFullText;
 
class PostResource extends Resource
{
//...
 
#[SearchUsingFullText(['title', 'text'])]
public function search(): array
{
return ['id'];
}
 
//...
}

Не забудьте добавить fulltext индекс

# Глобальный поиск

Для организации глобального поиска можно воспользоваться пакетом Algolias search for MoonShine

Данный пакет использует поисковый движок Algolia, который учитывает контекст и тип запроса, возможные опечатки, синонимы и словоформы, ввод запроса на разных языках и многое другое.