integrare Elasticsearch in WordPress

Integrare ElasticSearch in WordPress

Come installare e integrare ElasticSearch in WordPress? La guida

Installare e integrare ElasticSearch in WordPress permette di migliorare la funzionalità search in WordPress.

ElasticSearch è infatti un motore di ricerca open che permette non solo di migliorare i risultati di una ricerca ma anche le prestazioni e la velocità del sito web.

Doppio vantaggio quindi: motore di ricerca migliore, migliori performance della piattaforma.

Cos’è ElasticSearch?


Elasticsearch è un search engine open source, predisposto ad essere utilizzato in maniera distribuita.
Questo motore di ricerca  salva le informazioni  come documenti json ed espone interfacce RESTful per l’uso di tutte le sue funzionalità.

 

Come installare ElasticSearch?


Vediamo adesso come installare ElastiSearch su un server con sistema operativo Debian based:

  1. Installiamo OpenJDK 8, prerequisito di Elastic search;
    apt-get install openjdk-8-jdk
  2. Importiamo la key GPG relativa al repository;
    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add
  3. Installiamo apt-transport-https;
    sudo apt-get install apt-transport-https
  4. Aggiungiamo il repository ad  /etc/apt/sources.list.d/elastic-6.x.list;
    echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
  5. Installiamo ElasticSearch;
    sudo apt-get update && sudo apt-get install elasticsearch
  6. Verifichiamo che ElasticSearch sia correttamente in esecuzione;
    root@localhost:~# service elasticsearch status -l 
    ● elasticsearch.service - Elasticsearch
       Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)
       Active: active (running) since Sun 2018-05-27 17:04:17 UTC; 5s ago
         Docs: http://www.elastic.co
     Main PID: 7606 (java)
        Tasks: 15 (limit: 4915)
       CGroup: /system.slice/elasticsearch.service
               └─7606 /usr/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -Xss1
    
    mag 27 17:04:17 localhost systemd[1]: Started Elasticsearch.
    
    root@localhost:~# curl -XGET 'localhost:9200'
    {
      "name" : "1QtM2mP",
      "cluster_name" : "elasticsearch",
      "cluster_uuid" : "ww7UTb66QDS0FBHwA9023Q",
      "version" : {
        "number" : "6.2.4",
        "build_hash" : "ccec39f",
        "build_date" : "2018-04-12T20:37:28.497551Z",
        "build_snapshot" : false,
        "lucene_version" : "7.2.1",
        "minimum_wire_compatibility_version" : "5.6.0",
        "minimum_index_compatibility_version" : "5.0.0"
      },
      "tagline" : "You Know, for Search"
    }
    

 

Come installare e integrare ElasticSearch in WordPress?

 

Per integrare ElasticSearch in WordPress occorre innanzitutto installare il plugin Elasticpress. 

Una volta attivato il plugin è necessario definire l’URL a cui ElasticSearch è raggiungibile.

Possiamo farlo editando il file wp-config.php con l’aggiunta di:

/** ElasticPress */

define( 'EP_HOST', 'http://127.0.0.1:9200' );

Adesso sincronizziamo MySQL ed ElasticSearch. Possiamo farlo dal pannello di Elasticpress, cliccando sull’icona Sync.

La procedura può impiegare  fino a qualche minuto. Potrebbe verificarsi un errore qualora  max_execution_time di php abbia un valore troppo basso. In questo caso è sufficiente variare il valore di questo parametro e ripetere il sync.
Dopo il sync, ElasticSearch inizierà a popolarsi e a fornire i risultati delle query.
Da questo momento in poi ogni qualvolta verrà  inserito un post su WordPress avverrà una nuova sincronizzazione.

ElasticSearch può essere attivato anche su query custom. In questo caso  occorre inserire nell’argomento di WP_Query il parametro ‘ep_integrate’ => true .
Per esempio:

$my_query = new WP_Query( array(‘ep_integrate’ => true,‘post_type’ => $my_custom_post_type, ‘posts_per_page’ => -1) );

 

E’ possibile trovare maggiori informazioni su Elasticpress sulla pagina GitHub del progetto: https://github.com/10up/ElasticPress .

Approfittiamo per ringraziare il nostro cliente Carmelo Arancio  di   New Technology Revolution Srl per aver condiviso con noi  la sua esperienza nell’integrazione ElasticSearch/Wordpress.

Se avete domande o dubbi su come integrare ElasticSearch in WordPress, non esitate a contattarci!

 

No Comments

Post a Comment

+ 81 = 84

*

Accedi

Password dimenticata?