
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 и прописываем настройки
- Autosuggest Selector: input[type=”search”]
- Endpoint URL: https://itdraft.ru/ep-autosuggest – добавляли в Nginx
Пример работы: