Site icon IT Draft

Подключаем Elasticsearch к WordPress, настройка плагина ElasticPress (Autosuggest) для Nginx

Подключаем Elasticsearch к Wordpress, настройка плагина ElasticPress (Autosuggest) для Nginx 1

WordPress + Elasticsearch

Elasticsearch – быстрое, распределенное, масштабируемое решение с открытым кодом, предназначенное для управления поисковым контентом. Elasticsearch можно легко масштабировать за счет его распределенной архитектуры.

Устанавливаем Elasticsearch на сервер. На момент написания статьи ElasticPress совместим с Elasticsearch не выше версии 7.10.
Если ваша система с WordPress в Docker исполнении, часть конфига из docker-composer:

$ nano docker-composer.yml
...
  elasticsearch:
    image: elasticsearch:7.10.1
    container_name: elasticsearch
    restart: always
#    ports:
#      - "9200:9200"
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - xpack.security.enabled=false
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - ./elasticsearch:/usr/share/elasticsearch/data
    logging:
        driver: "json-file"
        options:
            max-size: "10k"
            max-file: "10"
...

Редактируем конфиг Nginx

$ nano ./nginx/wp.conf
...
location /ep-autosuggest {
  # only allow POST requests
  limit_except POST {
    deny all;
  }

  # Perform our request
  rewrite ^/ep-autosuggest(.*) $1/_search break;
  proxy_set_header Host $host;

  # Use the URL of the server here
  proxy_pass http://elasticsearch:9200;
  return 403;
}
...

Где строчка proxy_pass http://elasticsearch:9200; – для WordPress в docker исполнении.

Перезагружаем Nginx через docker composer

Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров

Компания занимает лидирующие позиции на рынке на рынке выделенных серверов и приватных облаков, и входит в топ-3 крупнейших операторов дата-центров в России.


$ docker composer restart nginx

Устанавливаем плагин ElasticPress, активируем его, производим первичную настройку и синхронизацию

Переходим в пункт меню Features, подключаем поиск Elasticsearch в разделе Post Search

Раскрываем раздел Autosuggest и прописываем настройки

Пример работы:

Exit mobile version