Elasticsearch
- Elasticsearch は Lucene 基盤の検索エンジンである。HTTP ウェブインターフェイスとスキーマフリーな JSON ドキュメントを備えた、分散処理マルチテナント対応全文検索エンジンを提供します。Elasticsearch は Java で開発されており、Apache ライセンスで公開されているオープンソースソフトウェアである。
インストール
Elasticsearch は最低でも OpenJDK 10 を必要とします。Java を見てください。
elasticsearch パッケージをインストールしてください。
実行
If you do not have a keystore at /usr/share/elasticsearch/config/elasticsearch.keystore
, you need to create one before starting Elasticsearch:
# elasticsearch-keystore create
elasticsearch.service
を起動・有効化してください。
curl を使って Elasticsearch にアクセスできることを確認してください: curl -X GET '<protocol>://<host>:<port>'
。例:
$ curl -X GET http://127.0.0.1:9200
{ "name" : "Sunder", "cluster_name" : "elasticsearch", "cluster_uuid" : "*cluster-uuid*", "version" : { "number" : "2.4.1", "build_hash" : "c67dc32e24162035d18d6fe1e952c4cbcbe79d16", "build_timestamp" : "2016-09-27T18:57:55Z", "build_snapshot" : false, "lucene_version" : "5.5.2" }, "tagline" : "You Know, for Search" }
設定
Elasticsearch のメインの設定ファイルは /etc/elasticsearch/elasticsearch.yml
です。
- デフォルトでは Elasticsearch は誰からでもアクセスできる状態になっています。特定のホストからのアクセスだけを許可するようにすることを推奨します:
network.host: 127.0.0.1
- デフォルトの
9200
の代わりにカスタムポートを使うことができます:
http.port: 9200
デフォルトの初期・最大メモリ使用量は以下の設定で変えられます:
/etc/elasticsearch/jvm.options
# Xms represents the initial size of total heap space # Xmx represents the maximum size of total heap space -Xms128m # e.g. 256m, 1g, 2g, .. -Xmx512m # e.g. 256m, 1g, 2g, ..
Reduce from 4g to 2g if you get the Linux Out-Of-Memory error.
vm.max_map_count のシステム上限を更新する必要があります:
# sysctl -w vm.max_map_count=262144
使用方法
Elasticsearch は REST API を使用します。詳しくは Wikipedia:ja:REST を見てください。
Talking to Elasticsearch と Getting started ガイドに基本的な情報と詳しい使い方が載っています。
Elasticsearch サーバーの管理 (ドキュメントのメンテナンスや検索の実行など) は基本的に クライアント を使用して行います。お好きなプログラミング言語とのシームレスな統合が可能です。
ElasticSearch インスタンスやクラスタを管理する便利なツールとして ElasticHQ, Elasticsearch GUI, Kibana が存在します。Adminer を使って管理することもできます。
基本的なセキュリティ
Elasticsearch 8.0 以降では、セキュリティはデフォルトで有効化・設定されています。 Elasticsearch は、必須の基本的なセキュリティ機能をセットアップするためのドキュメンテーションを提供しています。