Якщо ви коли-небудь потребували реалізувати функцію пошуку у вашій програмі, напевно, вам відомий Apache Solr. Solr — це швидка, відкрита платформа для пошуку, створена на основі можливостей повнотекстового, векторного та геопросторового пошуку Apache Lucene.
Розробник Хайдер Джаббар Абдулла створив пакет Laravel-Solr, який забезпечує бездоганну інтеграцію з Apache Solr. Це дозволяє розробникам Laravel ефективно використовувати потужні можливості пошуку Solr безпосередньо в їхніх додатках.
Щоб встановити цей пакет, виконайте команду:
composer require haiderjabbar/laravelsolr
Далі додайте постачальника послуг до вашого config/app.php:
'providers' => [
// ...
haiderjabbar\laravelsolr\LaravelSolrServiceProvider::class,
];
Необхідно також опублікувати файл конфігурації config/solr.php:
php artisan vendor:publish --provider="haiderjabbar\laravelsolr\LaravelSolrServiceProvider"
Коли ви завершите налаштування, потрібно створити core (якщо його ще немає). У Solr термін core позначає один індекс і відповідний лог транзакцій. Ви можете створити кілька корів, щоб індексувати дані з різними структурами на одному сервері, що дозволяє краще контролювати подання даних для різних користувачів.
# Створення нового Solr core та файлу міграції
php artisan solr:create-core coreName
Тепер ви можете почати додавати документи. Документи — це базовий елемент інформації у Solr, що представляє собою набір даних, який описує щось. Наприклад, документ про книгу може містити назву, автора, рік видання, кількість сторінок тощо. При додаванні документа Solr зберігає цю інформацію в індексі, а під час запиту швидко консультується з індексом, щоб повернути відповідні документи.
Необхідно визначити поля, які будуть в наших документах; для цього виконайте:
# Створення нових полів Solr з необов'язковими батьківськими полями
php artisan solr:create-fields coreName
Ця команда дозволяє вам вказати ім'я, тип та чи є поле багатозначним, обов'язковим чи індексованим.
Після визначення полів ви можете почати додавати документи. Для цього можна написати:
use haiderjabbar\laravelsolr\Models\SolrModel;
$coreName = 'your_core_name';
$data = [
'id' => 'unique_id',
'name' => 'document_name',
// ... інші поля
];
$result = SolrModel::addDocument($coreName, $data);
Пакет Laravel-Solr також має QueryBuilder, який забезпечує звичний інтерфейс для пошуку та повернення документів.
use haiderjabbar\laravelsolr\Services\SolrQueryBuilder;
$builder = new SolrQueryBuilder($coreName);
// Базовий пошук
$builder->search('field', '=', 'value', $boost);
// Умови пошуку
$builder->where('field', '=', 'value', $priority);
// Сортування та пагінація
$builder
->sort('field asc') // Додати сортування
->start(0) // Початковий зсув (пагінація)
->rows(10); // Кількість рядків для повернення
$results = $builder->get();
# Оновлення Solr core з новою назвою
php artisan solr:update-core
# Видалення Solr core та його файлу міграції
php artisan solr:delete-core coreName
# Оновлення існуючих полів Solr core
php artisan solr:update-fields
# Видалення полів з Solr core
php artisan solr:delete-fields
Більше інформації про цей пакет можна знайти на GitHub.
Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!
Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку
Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!