API: Полнотекстовый поиск
API: Полнотекстовый поиск
Требуется авторизация. Результаты фильтруются по правам пользователя на ресурс.
GET /api/v1/search
| Параметр | Описание |
|---|---|
q | Строка поиска (минимум 2 символа) |
limit | Макс. результатов (1–50, по умолчанию 30) |
Пример:
curl "http://localhost:8080/api/v1/search?q=задачи" \ -H "Authorization: Bearer $TOKEN"Ответ:
{ "success": true, "data": [ { "resourceType": "list", "resourceId": "uuid", "nodeId": "uuid", "title": "Задачи", "snippet": "…демонстрационный список…", "url": "/portal/lists/tasks", "rank": 0.12 } ], "meta": { "query": "задачи" }}Индексация (search-crawler)
Служба search-crawler в Service Framework индексирует:
- узлы (title, description);
- списки и элементы списков;
- страницы (HTML → текст);
- библиотеки и файлы (имя + текстовое содержимое для
text/*).
Ручной запуск: Админка → Службы → «Поисковый индекс» → Запустить.
Cron: настройка расписания на той же вкладке (job type: searchCrawler.run).
Индекс хранится в PostgreSQL (portal_search_index, GIN + tsvector).
UI
Поле поиска в верхней панели → /search?q=…