Elasticsearchで見る検索エンジンの仕組み(1): Elasticsearchインストール編

## はじめに

数年前、全文検索システム`Apache Solr`と`Elasticsearch`を使って以来、
検索エンジンに触れる機会がほとんどありませんでした。

薄れかけた記憶を呼び起こすため、Elasticsearch検証の旅に出ます。

## Apache Lucene(アパッチ ルシーン)とは

- Java製OSSの検索ライブラリで、Apacheのトップレベルプロジェクト
- 強力な文書インデクシング/検索機能/スペルチェック/ハイライト/テキスト解析、機能を提供

## Elasticsearchとは

- Apache Lucene基盤の分散処理マルチテナント対応検索エンジン
- プロプライエタリソフトウェア(かつてはOSS)
- [Githubのソースコードリポジトリ](https://github.com/elastic/elasticsearch)

## 検証環境

- CPU: Intel(R) Core(TM) 3.30GHz(4コア8スレッド)
- メモリ: 16 GB
- OS: Windows 10

## Elasticsearchをインストール

- [Windows版Elasticsearch](https://www.elastic.co/jp/downloads/elasticsearch)をダウンロード

- zipを解凍し、`elasticsearch-8.3.1`フォルダーを作業フォルダーに移動
    - `C:\es\elasticsearch-8.3.1`

- 環境変数を設定
    - `ES_HOME`を追加(上記の導入フォルダー)
        - `C:\es\elasticsearch-8.3.1`
    - `PATH`に`%ES_HOME%\bin`を追加

## Elasticsearchを起動

```powershell
PS C:\es> elasticsearch
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/13cd8829-6935-11e1-be76-991d1c4c10de.png)

- 起動メッセージ
```
... ...
----------------------------------------------------------------------------------------------------------> Elasticsearch security features have been automatically configured!
-> Authentication is enabled and cluster connections are encrypted.

->  Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
  xxxxxxxxxxxxxxxxxxx

->  HTTP CA certificate SHA-256 fingerprint:
  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

->  Configure Kibana to use this cluster:
* Run Kibana and click the configuration link in the terminal when Kibana starts.
* Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

->  Configure other nodes to join this cluster:
* On this node:
  - Create an enrollment token with `bin/elasticsearch-create-enrollment-token -s node`.
  - Uncomment the transport.host setting at the end of config/elasticsearch.yml.
  - Restart Elasticsearch.
* On other nodes:
  - Start Elasticsearch with `bin/elasticsearch --enrollment-token <token>`, using the enrollment token that you generated.
---------------------------------------------------------------------------------------------------------
```

- 起動メッセージで最後の部分から、以下3点控える
    - `elastic`ユーザのパスワード: `
        - `->  Password for the elastic user`
    - Kibanaの登録トークン(登録後30分有効)
        - `* Copy the following enrollment token`
    - HTTP CA認証SHA-256フィンガープリント
        - `HTTP CA certificate SHA-256 fingerprint`

## ブラウザからElasticsearchに接続

- `https://localhost:9200/`にアクセス
    - ユーザ: elastic
    - パスワード: 上述elasticユーザのパスワード
- 画面に、起動中Elasticsearchの情報が表示される

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523098/d737ecca-cebc-d0c3-85e6-285765a1195e.png)

## おわりに

Elasticsearchを簡単にインストール/起動できました。
次回は、Kibanaをインストールします。お楽しみに。

##### [次回] [Elasticsearchで見る検索エンジンの仕組み(2): Kibanaインストール編](https://qiita.com/mingchun_zhao/items/7e2be29496e26fef86c8)