Пост

Подключаем 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

Прописываем настройки в Autosuggest

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

Авторский пост защищен лицензией CC BY 4.0 .