Материал станет доступным для поиска после внесения в индекс, т.е. после его индексации. Удобнее всего индексировать материал, когда он создаётся или обновляется. За индексирование в библиотеке отвечает класс Indexer. Инициализируем его, указав в качестве параметра объект с конфигурацией.
<?php
use win0err\LightSearch\Indexer;
$indexer = new Indexer( $config );
Чтобы проиндексировать материал, его нужно передать индексировщику в специальном формате. Для этого создан класс Indexable.
<?php
use win0err\LightSearch\Entity\Indexable;
$indexable = new Indexable();
$indexable
->setExternalId('post.example') // Внешний ID для идентификации материала в проекте
->setTitle('Пример индексирования') // Заголовок материала
->setDate(new \DateTime("now")) // Дата создания материала
->setUrl('/example.html') // Ссылка на материал
->setText($text); // Текст материала
// Добавляем материал в индекс:
$indexer->index($indexable);
При добавлении в индекс LightSearch проверяет, существует ли уже материал с таким же внешним идентификатором. Если не существует, то библиотека добавит материал в индекс, иначе, если есть изменения обновит существующий материал.
Для удаления материала из индекса, нужно использовать метод «removeByExternalId», передав ему в качестве параметра внешний идентификатор: $indexer->removeByExternalId('post.example’);
Далее: Поиск по индексу