Как Elasticsearch может усовершенствовать работу WordPress

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 можно эксплуатировать всесторонне, в том числе для повышения производительности любых запросов. Кроме того, пользователю следует знать, что:

  1. К запросам можно добавлять правила и новые настройки для того, чтобы полностью контролировать поиск.
  2. Подборки Elasticsearch можно эксплуатировать для формирования динамических форм, в термах таксономий которых не присутствуют пустые элементы.
  3. В результатах поиска можно получать несколько сайтов. При этом их таблицы не будут пересекаться.
  4. При тщательном изучении всех архитектурных возможностей программы можно обнаружить другие методы применения, повышающие производительность и расширяющие возможности поиска.

Заключение

Elasticsearch позволяет повысить эффективность сайта в области поиска и модернизировать его возможности. Исключений не составляют сложные или простые формы запроса. Решение мгновенно адаптируется под другие комплексные правила, которые обычно применяются к поисковым результатам. Несмотря на большое количество альтернатив, Elasticsearch остается самой многофункциональной программой в этом секторе.