Полнотекстовый поиск по электронному каталогу. IrbisSearchTools.
В общем api уже есть, бот готов, инструмент обновил. Бота можно пощупать тут [
t.me]
Схема следующая:
1) Базы mst индексируются в Manticore(форк Sphinx). При индексации записей сохраняем byte_low позицию в файле базы данных. Благодаря этому при следующей индексации мы просто берем максимальный byte_low и сканируем .mst с этой позиции. Все базы хранятся в одном индекса но отличаются по атрибуту.
2) Реализовано простейшее api/search. В данный момент пока поддерживается полнотекстовый поиск по всем полям, по ключевым словам, фильтр по базе данных, фильтр по дате публикации( поля 210[0].A, 463[0].J, 461[0].H ). А так же два вспомогательных api/startIndex, api/getIndexedDatabaseList. Первый запускает процесс индексации при условии, что прошлый не упал с ошибкой и копии не запущено. Второй показывает статистику по индексу, какие базы в ней лежат и сколько документов в каждой из них.
3) Реализован простейший бот, умеет пока что в полнотекстовый поиск. В дальнейшем планирую реализовать механизм цепочек запросов (добавлять уточняющие фильтры). Функция расформатирования записей опциональная php<->irbis. В первом случае можно самому описать логику класса, который на вход получает массив полей. Во втором требуется соединение с сервером ирбис и расформатирование производится им по Guid записи.
4) Все это работает под nginx и опционально еще можно запустить Ngrok(хук для телеграм бота автоматически устанавливается).
Все настройки теперь находятся в едином файле конфигурации.
В общем, кому интересно - пишите, поделюсь наработками. Первичная индексация 150.000 записей длится где-то минут пять. Вторичные индексации моментальные так как файл базы данных при изменении и добавлении записей линейно дозаписывается в конец. При оптимизации базы данных(при которой происходит удаление старых версий) индексацию все же нужно будет производить заного.
Вокруг api в дальнейшем можно уже плагин для wordpress написать.
В библиотечном деле и в разработке в целом недавно, но мне пока нравится. Есть над чем работать.
Написать можно всегда в тг @tsfex
[maglib.ru]
Редактировано 38 раз. Последний раз 29.04.2022 08:58 пользователем exieros.