У меня есть сабж. Пользуюсь я им так:
- Запускаю docker-compose, который поднимает инстанс Elasticsearch
- Пишу запрос для Elasticsearch с помощью curl
- Ищу в ответе id нужного поста, вставляю в URL и открываю в браузере
- Когда надо, запускаю кравлер, чтоб обновить индекс
- А Moera Top Posters генерирую, запуская terms aggregation на Elasticsearch и скрипт генерирует маркдаун-текст
По идее можно написать к нему веб-приложение и поднять на AWS OpenSearch, S3 bucket для статического контента и API Gateway с Lambda для демонического. И по идее даже выйдет бесплатно, войдёт в Free Tier. Но пока руки не доходят.
Ну и да, пока никакого стемминга, приходится точную форму слова указывать, чтоб нашло.
#moera #search
Comments (13)
Круто 👍 Если дойдут руки выложить - скажи, я выставлю в клиент строку поиска.
Демонический контент 👿 😉
Он самый 😉
Ну, выложить, это одно, тут написать надо. Всё, кроме кравлера 🙂
А зачем писать? Если в клиент будет встроено, он будет прямо обращаться к Elasticsearch. Или я что-то неправильно понимаю?
Нет, во-первых, нельзя делать Elasticsearch публичным, что-то должно быть за ним. Во-вторых, нужно сформировать запрос на основе строки поиска. Я сейчас низкоуровневыми штуками пользуюсь, потому что знаю, что ищу. Ну и сформировать страницу результатов поиска надо. А там можно сделать красиво, ES умеет выдавать превью релевантное строке поиска:
Лучше формировать JSON, а страницу уже показывать в клиенте.
Можно и так, я просто не вижу себя пишущим на Javascript 🙂
А зачем JavaScript?
Ну, JSON же нужно преобразовать в DOM ? 🙂
Для простого пользователя объясните пожалуйста где тут вообще поиск?
Так это ж буду делать я в клиенте 😉
Ну вот пока есть только такой зародыш поиска, который работает у меня на машине.