WordPressからElasticsearchに記事情報を投入する

Elasticsearchいいよ Elasticsearch やりたいこと WordPressの記事データをElasticsearchで検索したい やらないといけないこと WordPressの記事データをElastics […]

広告ここから
広告ここまで

目次

    Elasticsearchいいよ Elasticsearch

    やりたいこと

    WordPressの記事データをElasticsearchで検索したい

    やらないといけないこと

    WordPressの記事データをElasticsearchに投入する

    コード

    function put_elasticsearch( $post_id )  {
      // Create Import data 
      $post = get_post( $post_id );
      $query = array(
        'title' => $post->post_title,
        'content' => $post->post_content,
      );
      
      // PUT to Elasticsearch
      $es_endpoint = 'https://example.com';
      $es_index = 'wordpress';
      $es_type  = 'post';
      $es_id = $post_id;
      $es_api = path_join( $es_endpoint, path_join( $es_index, path_join( $es_type, $es_id ) ) );
      $es_args = array(
        'method' => 'POST',
        'body' => json_encode( $query ),
      );
      wp_remote_post( $es_api, $es_args );
    
      return $post_id;
    }
    add_action( 'publish_post', 'put_elasticsearch' );
    

    記事の新規追加だけであればPUTの方がいいですが、更新とかでもインデックさせたいのでPOSTを使ってます。
    基本的にはhttps://ELASTICSEARCH_ENDPOINT/INDEX/TYPE/IDに対してJSONデータをbodyに入れたリクエストを送ればだいたいOKです。

    bulkインポートはちょっとやり方が違うので要注意です。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark