Skip to content

Discours/discours-microservice-search

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

Микросервис поиска индексирует весь контент Дискурса и позволяет искать по нему

Функциональность

  • Микросервис не должен зависеть от формата API осноновного backend
  • Микросервис принимает от backend следующие сущности для индексации: статьи, материалы экспозиции, авторы, теги
  • Может сортировать поисковую выдачу как по релевантности, так и по хронологии
  • При сортировке по релевантности статьи, у которых искомое в заголовке, должны быть выше, чем статьи, у которых искомое в тексте или в тегах.

API (может измениться)

  • POST /index отправить материал на индексацию
    • id (string)
    • type (Article | ExpoItem | Author | Tag)
    • slug (string)
    • title (string)
    • body (string)
    • tags (string[])
    • version (number)

Оригинал

Манифест разработки Дискурса

Лого Дискурса

Красивый баннер Дискурса с людьми в одежде 18-о века

  1. Дискурс — открытый проект. Каждый желающий имеет право стать контрибьютором проекта, внести изменения в любой из сервисов проекта и отправить Pull Request.
  2. Дискурс — общий проект. Вы всегда можете пообщаться с другими членами команды в Gitter чате Дискурса. Там Вы можете узнать, что сейчас лучше сделать, а также задать любой вопрос по поводу разработки проекта.
  3. Дискурс — проект для читателя. В первую очередь команда выполняет те таски, за которые проголосовали пользователи на публичной доске задач проекта.
  4. Дискурс — проект для любого разработчика. Мы принимаем микросервисы для backend на любом языке программирования. Но стоит понимать, что мэйнтейнеры проекта не могут знать всех языков, поэтому Dockerfile для запуска микросервиса, понятная документация и тесты (с настроенным CI для их прогона) обязательны в каждом микросервисе.
  5. Дискурс — проект для приятной разработки. Команда следит за качеством кода в проекте для того, чтобы новым контрибьюторам было максимально просто влиться в проект. Качество кода - это не только code style и тесты, но и такие субъективные показатели, как читаемость кода и архитектура. Мэйнтейнеры проекта имеют право попросить автора PR изменить код в целях повышения его качества.
  6. Дискурс — проект для удобной разработки новых features. Команда Дискурса стремится создать проект, в котором не надо читать весь код для реализации конкретной функциональности. Мы стремимся создать максимально изолированную среду разработки, используя которую каждая фича разрабатывается отдельно. На frontend проектах мы используем storybook для разработки компонентов и react-testing-library для интеграционного тестирования функциональности компонентов. На backend проектах — разрабатываем используя тесты.
  7. Дискурс — проект с открытым манифестом разработки. Каждый желающий может прислать изменения в данный манифест.
  8. Дискурс — проект доступный. Верстка в проекте должна учитывать пользователей с ограниченными возможностями, то есть необходимо использовать ARIA аттрибуты. В storybooks всех фронтэнд проектов установлен плагин @storybook/addon-a11y, который показывает недостающие ARIA аттрибуты.
  9. Дискурс — проект без гос. цензуры. Но большая часть наших читателей из РФ, где РосКомНадзор частенько бомбит славный город Воронеж и даже иногда блокирует сам себя. Инфраструктура проекта должна быть распределенной, но должна поддерживать быструю смену IP адресов всего, до чего необходимо достучаться пользователю (фронтэнд, бэкэнд, rss микросервис, другие микросервисы доступные пользователю). Нельзя создавать vendor lock на решения, которые не позволяют быстро сменить IP (Cloudflare, Netlify).

About

Микросервис поиска по сайту Дискурса

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published