Створення повнотекстового пошуку в laravel, laravel по-російськи

У цьому керівництві я опишу створення повнотекстового пошуку в Laravel 4.
Ті з вас, хто працював з Laravel 3, можуть згадати, що в ньому була підтримка FULLTEXT-індекс. Ця функціональність була видалена з Laravel 4, але як і раніше може бути легко реалізована.

Однак майте на увазі, що повнотекстовий пошук сумісний ні з кожним сервером баз даних, або може працювати з ними по-різному. Це стало головною причиною його видалення з Laravel 4. Але якщо ви працюєте з MySQL, то ви можете використовувати такий пошук без проблем!

Що треба знати про повнотекстовому пошуку

MySQL підтримує повнотекстове індексування і пошук:

  • Повнотекстовий індекс в MySQL - це індекс типу FULLTEXT.
  • Повнотекстові індекси можуть використовуватися тільки з таблицями MyISAM. (А в MySQL 5.6 і вище вони також можуть використовуватися з таблицями InnoDB). Повнотекстові індекси можуть бути створені тільки для стовпців CHAR. VARCHAR або TEXT.
  • Опис FULLTEXT-індекс може бути дано в операторі CREATE TABLE. коли таблиця створюється, або додано пізніше за допомогою ALTER TABLE або CREATE INDEX.
  • Для великих наборів даних набагато швидше завантажити дані в таблицю, у якій немає FULLTEXT індексу, і після цього створити індекс, ніж завантажувати дані в таблицю, у якій вже є FULLTEXT індекс.

Як використовувати повнотекстовий пошук в Laravel

Для того щоб почати застосовувати повнотекстовий пошук в Laravel 4, ми подбаємо про кілька речей:

  • Якщо ви використовуєте НЕ MySQL 5.6+, ми повинні вибрати в якості движка бази даних MyISAM замість InnoDB.
  • Ми повинні налаштувати міграцію і додати повнотекстовий індекс.
  • Ми повинні додати функцію пошуку в наш контролер.

Міграція нашої таблиці

У наведеному коді ви можете побачити, що ми також вибрали движок сховища MyISAM в міграції.
Індекс FULLTEXT заданий після створення таблиці за допомогою оператора ALTER TABLE.

У функції down () ми спочатку видаляємо повнотекстовий індекс, а потім видаляємо таблицю.

Додавання функції пошуку в наш контролер

Тепер, наприклад, якщо параметр вашого запиту буде «testing». ви отримаєте наступний MySQL-запит:

У цьому прикладі я також беру результат і передаю його в моє уявлення index. Ви так само можете використовувати інше уявлення.

Додавання маршруту і зміна уявлення

Ми створюємо наш маршрут так:

І ми можемо створити просту форму в поданні так:

Все, що нам для цього потрібно, це текстове поле з параметром name. з встановленим значенням query (або будь-який, який ви вирішили вибрати в якості вхідного імені в вашому контролері).

От і все!

Як ви вважаєте, чи корисний цей матеріал? Та ні

Статистика: Символів - 5 609/4 678 без пробілів (2 854/2 420 без коду). слів - 435