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