К содержимому
slophub
← все идеи
Сырое14 дней назад@akryll

Сквозной поиск по сайту и вики

Полнотекстовый поиск уже работает в API — осталось довести его до строки поиска на сайте и сшить с выдачей вики.

Половина работы сделалась мимоходом. Когда контент переехал в PostgreSQL, поиск приехал вместе с ним: у записей есть индекс tsvector с русской морфологией, и API умеет искать прямо сейчас — ?q=промпты находит и «промптов», и «промптам».

Раньше здесь был Pagefind: он индексировал статику после сборки, серверная часть не требовалась. С переездом на базу необходимость отпала — искать по таблице проще и честнее, чем по выгрузке рядом со страницами.

Что осталось:

  • строка поиска в шапке и страница выдачи с подсветкой совпадений;
  • ранжирование по релевантности, а не по дате: сейчас выдача отсортирована хронологически, для поиска это неправильно;
  • вики. У Wiki.js собственный поиск и своя база, поэтому единая выдача — это либо периодический экспорт страниц вики в наш индекс, либо два запроса и склейка результатов на лету.

Последний пункт и есть основной вопрос. Экспорт даёт одну выдачу и одно ранжирование, но данные отстают. Склейка на лету всегда свежая, зато ранжировать два источника в общем списке нечем: их оценки релевантности несравнимы.