Elasticsearch – это решение, обладающее открытым кодом, способное обеспечить управление поисковым наполнением. Легко поддается масштабированию благодаря наличию своеобразной архитектуры, позволяющей совершенствоваться программе вместе с сайтом. Производительность при этом меняться будет исключительно в лучшую сторону. Поиск может переноситься в отдельный сервис для сохранения всех ресурсов сайта.
Достоинства Elasticsearch
Базовый поиск WordPress не оптимизируется для сайтов, который сталкиваются с активными и сложными запросами. Он начинает искать полные заголовки и фразы в контенте. Поиск опирается на базу MySQL и не способен поддержать усложненные расчеты релевантности либо фильтры с расширенными возможностями.
Для тестирования стоит взять:
- VVV2 Vagrant бокс, расположенный на тестовым сайте.
- Elasticsearch Vagrant бокс – базовую однокластерную установку.
- WordPress 4.7.3, на котором хранится 24471 записи.
- ElasticPress 4.1, интегрирующий WP-запросы с ElasticSearch.
- Debug Bar и Debug Bar ElasticPress, отслеживающие запросы ElasticSearch.
- Query Monitor, фиксирующие необработанные SQL-запросы.
В цифрах разница между обычным поиском с Elasticsearch и без него выглядит следующим образом: поиск по самому простому запросу требует в 89 раз больше времени, чем аналогичный запрос, обрабатываемый Elasticsearch, которому понадобится всего 11 мс для подготовки результатов по все тому же обычному запросу.
Если сравнивать сложный поиск без Elasticsearch и с ним, то результаты получатся еще более впечатляющие. Для выполнения сложного поиска, в котором нужно учитывать местоположение события и его дату, будет занимать не менее 1260 мс без оптимизированного поискового решения, а с ним всего 16 мс.
Результаты тестирования обычных и сложных поисковиков
Если запустить для теста 10 тысяч запросов от ста пользователей одновременно с использованием простого поиска типа Short Ribs, то получится следующее: Базовый WP потратит 89.708 мс, SearchWP/FacetWP — 216.619 мс, а Elasticsearch — 88.564 мс. Если то же самое сделать со сложным поиском при прочих равных условиях, то результат будет таким: сырой SQL требует 240.163 мс, а Elasticsearch всего 86.7 мс
Дополнительные причины для использования Elasticsearch
Ускоренный поиск по простым и сложным запросам далеко не единственная причина для подключения данного решения. Elasticsearch можно эксплуатировать всесторонне, в том числе для повышения производительности любых запросов. Кроме того, пользователю следует знать, что:
- К запросам можно добавлять правила и новые настройки для того, чтобы полностью контролировать поиск.
- Подборки Elasticsearch можно эксплуатировать для формирования динамических форм, в термах таксономий которых не присутствуют пустые элементы.
- В результатах поиска можно получать несколько сайтов. При этом их таблицы не будут пересекаться.
- При тщательном изучении всех архитектурных возможностей программы можно обнаружить другие методы применения, повышающие производительность и расширяющие возможности поиска.
Заключение
Elasticsearch позволяет повысить эффективность сайта в области поиска и модернизировать его возможности. Исключений не составляют сложные или простые формы запроса. Решение мгновенно адаптируется под другие комплексные правила, которые обычно применяются к поисковым результатам. Несмотря на большое количество альтернатив, Elasticsearch остается самой многофункциональной программой в этом секторе.