【Elasticsearch】ローカル環境でElasticsearchを試してみる
目次
はじめに
お世話になります、hosochinです
今回はElasticsearchをローカル環境で試してみた話です
Elasticsearchとは
環境構築
1. Elasticsearch をダウンロードする (この時のバージョンは 8.7.0)
2. ダウンロードした tar.gz ファイルを解凍
3. elasticsearch-8.7.0 の直下に移動
$ cd elasticsearch-8.7.0
4. 日本語プラグインをインストール
$ bin/elasticsearch-plugin install analysis-kuromoji
5. 起動させる(1 分くらいかかる)
$ bin/elasticsearch
6. http://localhost:9200 にアクセスして json が表示されたら成功
うまくいかない場合(こんなエラーが出力されてるとき)
received plaintext http traffic on an https channel, closing connection Netty4HttpChannel
1. config/elasticsearch.yml を修正する
2. `xpack.security.enabled`が`true`になっていると思うので、`false`に変更する
3. 再起動してやる
動作確認
ドキュメントを投入する
curl -H "Content-Type: application/json" -X POST "http://localhost:9200/myindex/_doc/1" -d @example1.json
example1.json
{
"firstname": "Taro",
"lastname": "Suzuki"
}
投入したドキュメントを確認する
$ curl -X GET "http://localhost:9200/myindex/_doc/1" | jq
{
"_index": "myindex",
"_id": "1",
"_version": 1,
"_seq_no": 0,
"_primary_term": 1,
"found": true,
"_source": {
"firstname": "Taro",
"lastname": "Suzuki"
}
}
ドキュメントの検索
全てのドキュメントを検索
-- リクエストパラメータ方式
$ curl -X GET "http://localhost:9200/myindex/_search?q=firstname:Taro" | jq
-- リクエストボディ方式
$ curl -H "Content-Type: application/json" -X GET "http://localhost:9200/myindex/_search" -d '{"query": {"match": {"firstname": "Taro"}}}' | jq
他にも AND 条件、OR 条件、数値の検索、フィルターつけたり、スコアに重み付けしたり…めっちゃ色々ある
詳しくはこちら
ドキュメントの更新
curl -H "Content-Type: application/json" -X PUT "http://localhost:9200/myindex/_doc/1" -d @example2.json
esample2.json
{
"firstname": "Ichiro",
"lastname": "Suzuki"
}
ドキュメントの削除
curl -X DELETE "http://localhost:9200/myindex/_doc/1"
Kibana も試しみてる
Kibana とは
- Elasticsearch の可視化ツールみたいなやつ
- Elasticsearch データの可視化
- Elastic Stack の制御
- クエリの負荷の追跡
- アプリ内部のリクエストフローの把握
- 公式ドキュメント
Kibana の環境構築
1. Kibana をダウンロードする
2. 起動させる(1 分くらいかかる)
$ bin/kibana
3. http://localhost:5601/ をブラウザで開く
4. http://localhost:5601/app/dev_tools でコンソールが開かれる → ターミナルから curl してたのは全てこのコンソールから実行可能
ディスカッション
コメント一覧
まだ、コメントがありません