Как мы делали поиск в elasticsearch на vulners.com
Как мы писали ранее, в качестве основной базы для поиска на сайте используется elasticsearch. Поиск в elastic работает очень быстро и из коробки доступно много полезных функций для работы с данными — полнотекстовый поиск, неточный поиск, всевозможные методы агрегации и тд.
И в отличии от классических SQL баз данных или noSQL типа MongoDB здесь очень удобно делать неточный поиск по всему документу. Для этого используется синтаксис Query DSL. Для полнотекстового поиска по всему документу есть несколько поисковых запросов. У себя на сайте мы используем тип query_string. Этот запрос поддерживает Lucene синтаксис, который позволяет и нам и пользователю создавать сложные запросы в google-style. Вот примеры таких запросов:
title:apache AND title:vulnerability
type:centos cvss.score:[8 TO 10]
Можно сделать вот такой простой запрос и все:
{ "query": { "query_string": { "query": "exploit wordpress" } }}
Но начав впервые использовать query_string, вы столкнетесь с тем, что поиск выдает не то, что вы хотите видеть. Как же добиться от elasticsearch внятного результата поиска?
Читать дальше →
Источник: Хабрахабр
Похожие новости
- [Перевод] Захват аккаунта без единого клика с помощью параметра сброса пароля
- Мультивселенная киберполигонов в РФ: часть 3. Интервью со специалистами платформы Standoff 365
- 300 млн за квартал, 1,4 млрд за 2026 год: сколько бюджет РФ потеряет из-за запрета на рекламу в Instagram*
- Топологическая безопасность ECDSA: Динамические методы анализа и теоретические основы
- Kaspersky NGFW: тестирование фаервола в разрезе ИБ
- Туннель в никуда: как ngrok помогает обойти периметр и как это остановить
- Строим корпоративную GenAI-платформу: от концепции до ROI. Часть 4. Безопасность и ограничения (guardrails)
- SkyCapital: Вьетнам запускает пилотный проект блокчейн-платежей для туристов в Дананге
- ГОСТ 57580 без головной боли: инструкция по автоматической оценке и отчетности
- Исследование i-Media: как бренды выбирают агентства