РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
323 of 1392 menu

Метод whereFullText

Метод whereFullText применяется к запросу Eloquent или Query Builder и добавляет условие полнотекстового поиска. Первым параметром передаётся имя колонки или массив колонок, вторым - поисковый запрос. Третьим необязательным параметром можно передать опции поиска, такие как режим BOOLEAN или NATURAL LANGUAGE. Для работы метода в базе данных должен быть создан полнотекстовый индекс.

Синтаксис

<?php Model::whereFullText($columns, $query, $options = []); ?>

Пример

Давайте выполним полнотекстовый поиск по полю 'title' модели Article, найдя все статьи, содержащие слово 'laravel':

<?php use AppModelsArticle; $articles = Article::whereFullText('title', 'laravel')->get(); foreach ($articles as $article) { echo $article->title; } ?>

Результат выполнения кода:

"Laravel tutorial" "Laravel best practices"

Пример

Поиск сразу по нескольким колонкам 'title' и 'content':

<?php use AppModelsArticle; $articles = Article::whereFullText(['title', 'content'], 'laravel')->get(); foreach ($articles as $article) { echo $article->title; } ?>

Результат выполнения кода:

"Laravel tutorial" "Laravel best practices" "Advanced PHP techniques"

Пример

Использование режима BOOLEAN для точного поиска с операторами '+' и '-':

<?php use AppModelsArticle; $articles = Article::whereFullText( 'title', '+laravel -php', ['mode' => 'boolean'] )->get(); foreach ($articles as $article) { echo $article->title; } ?>

Результат выполнения кода:

"Laravel tutorial" "Laravel best practices"

Пример

Использование метода в Query Builder с таблицей 'articles':

<?php use IlluminateSupportFacadesDB; $articles = DB::table('articles') ->whereFullText('content', 'database query') ->get(); foreach ($articles as $article) { echo $article->title; } ?>

Результат выполнения кода:

"Optimizing database queries" "Query builder in Laravel"

Пример

Поиск с учётом релевантности и сортировкой по соответствию:

<?php use AppModelsArticle; use IlluminateSupportFacadesDB; $articles = Article::whereFullText('content', 'eloquent model') ->orderByRaw(DB::raw('relevance DESC')) ->get(); foreach ($articles as $article) { echo $article->title; } ?>

Результат выполнения кода:

"Eloquent relationships" "Model events in Laravel"

Пример

Комбинирование полнотекстового поиска с обычными условиями через метод where:

<?php use AppModelsArticle; $articles = Article::whereFullText('title', 'laravel') ->where('status', 'published') ->orderBy('created_at', 'desc') ->get(); foreach ($articles as $article) { echo $article->title; } ?>

Результат выполнения кода:

"Laravel best practices" "Laravel tutorial"

Пример

Использование метода с оператором IN BOOLEAN MODE для фразового поиска:

<?php use AppModelsArticle; $articles = Article::whereFullText( 'content', '"full text search"', ['mode' => 'boolean'] )->get(); foreach ($articles as $article) { echo $article->title; } ?>

Результат выполнения кода:

"Full text search in MySQL" "Implementing search in Laravel"

Смотрите также

  • метод where,
    который добавляет базовое условие выборки
  • метод whereLike,
    который выполняет поиск по шаблону
  • метод whereIn,
    который фильтрует по списку значений
  • метод orderBy,
    который сортирует результаты запроса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить