Подключаем Elasticsearch к Wordpress, настройка плагина ElasticPress (Autosuggest) для Nginx
Elasticsearch – быстрое, распределенное, масштабируемое решение с открытым кодом, предназначенное для управления поисковым контентом. Elasticsearch можно легко масштабировать за счет его распределенной архитектуры.
Устанавливаем Elasticsearch на сервер. На момент написания статьи ElasticPress совместим с Elasticsearch не выше версии 7.10.
Если ваша система с Wordpress в Docker исполнении, часть конфига из docker-composer:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ 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
1
$ docker composer restart nginx
Устанавливаем плагин ElasticPress, активируем его, производим первичную настройку и синхронизацию Активируем ElasticPress
Переходим в пункт меню Features, подключаем поиск Elasticsearch в разделе Post Search Подключаем поиск Elasticsearch
Раскрываем раздел Autosuggest и прописываем настройки:
- Autosuggest Selector:
input[type="search"]
- Endpoint URL:
https://itdraft.ru/ep-autosuggest
- добавляли в Nginx