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インポートはちょっとやり方が違うので要注意です。