Elastic Stack 8 : Elasticsearch インストール2022/11/09 |
全文検索エンジン Elasticsearch をインストールします。
|
|
[1] | Elasticsearch をインストールして起動します。 Java のインストールは不要です。Elasticsearch に統合されています。 |
root@dlp:~# wget -O - https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor -o /etc/apt/keyrings/elasticsearch-keyring.gpg root@dlp:~# echo "deb [signed-by=/etc/apt/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-8.x.list root@dlp:~# apt update root@dlp:~# apt -y install elasticsearch
..... ..... --------------------------- Security autoconfiguration information ------------------------------ Authentication and authorization are enabled. TLS for the transport and HTTP layers is enabled and configured. The generated password for the elastic built-in superuser is : ErHQaG33QeEFNSer2odU If this node should join an existing cluster, you can reconfigure this with '/usr/share/elasticsearch/bin/elasticsearch-reconfigure-node --enrollment-token <token-here>' after creating an enrollment token on your existing cluster. You can complete the following actions at any time: Reset the password of the elastic built-in superuser with '/usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic'. Generate an enrollment token for Kibana instances with '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana'. Generate an enrollment token for Elasticsearch nodes with '/usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node'. -------------------------------------------------------------------------------------------------
root@dlp:~#
systemctl enable --now elasticsearch
# 動作確認 # パスワードはインストール中に表示されたパスワードで応答 root@dlp:~# curl -u elastic --cacert /etc/elasticsearch/certs/http_ca.crt https://127.0.0.1:9200 Enter host password for user 'elastic': { "name" : "dlp.srv.world", "cluster_name" : "elasticsearch", "cluster_uuid" : "M9nrqhXsTR694D0Olok-HQ", "version" : { "number" : "8.5.0", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "c94b4700cda13820dad5aa74fae6db185ca5c304", "build_date" : "2022-10-24T16:54:16.433628434Z", "build_snapshot" : false, "lucene_version" : "9.4.1", "minimum_wire_compatibility_version" : "7.17.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "You Know, for Search" } |
[2] |
Elasticsearch を他ホストからも利用する場合は、クラスターの設定を参照ください。
クラスター構成ではないシングルホストの場合でも、他ホストからのリクエストを受け付ける場合は、同様の設定が必要です。 |
[3] | 日本語が扱えるようにプラグインをインストールします。 |
# analysis-kuromoji インストール root@dlp:~# /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji -> Installing analysis-kuromoji -> Downloading analysis-kuromoji from elastic [=================================================] 100% -> Installed analysis-kuromoji -> Please restart Elasticsearch to activate any plugins installed # インストール済みプラグイン表示 root@dlp:~# /usr/share/elasticsearch/bin/elasticsearch-plugin list analysis-kuromoji |
[4] | 基本的な使い方です。 まず最初に Index を作成します。RDB のデータベースに相当する概念です。 |
# Index 一覧を表示 (pretty は JSON 形式の表示を見易くするオプション) root@dlp:~# curl -u elastic --cacert /etc/elasticsearch/certs/http_ca.crt https://127.0.0.1:9200/_aliases?pretty Enter host password for user 'elastic': { ".security-7" : { "aliases" : { ".security" : { "is_hidden" : true } } } } # Index 作成 root@dlp:~# curl -u elastic --cacert /etc/elasticsearch/certs/http_ca.crt -X PUT "https://127.0.0.1:9200/test_index" Enter host password for user 'elastic': {"acknowledged":true,"shards_acknowledged":true,"index":"test_index"} # 確認 root@dlp:~# curl -u elastic --cacert /etc/elasticsearch/certs/http_ca.crt https://127.0.0.1:9200/_aliases?pretty Enter host password for user 'elastic': { ".security-7" : { "aliases" : { ".security" : { "is_hidden" : true } } }, "test_index" : { "aliases" : { } } }root@dlp:~# curl -u elastic --cacert /etc/elasticsearch/certs/http_ca.crt https://127.0.0.1:9200/test_index/_settings?pretty Enter host password for user 'elastic': { "test_index" : { "settings" : { "index" : { "routing" : { "allocation" : { "include" : { "_tier_preference" : "data_content" } } }, "number_of_shards" : "1", "provided_name" : "test_index", "creation_date" : "1667873808441", "number_of_replicas" : "1", "uuid" : "v54rKGamQHaDWzwtwjxeEA", "version" : { "created" : "8050099" } } } } } |
[5] | Mapping とテストデータの投入を実行します。 Mapping は Index の構造を定義するものです。データを投入すると自動で Mapping 定義されますが、手動で定義することももちろん可能です。 |
# データ投入 root@dlp:~# curl -u elastic --cacert /etc/elasticsearch/certs/http_ca.crt \
-H "Content-Type: application/json" \ -X PUT "https://127.0.0.1:9200/test_index/_doc/001" -d '{ "subject" : "Test Post No.1", "description" : "This is the initial post", "content" : "This is the test message for using Elasticsearch." }' {"_index":"test_index","_id":"001","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1} # Mapping 確認 root@dlp:~# curl -u elastic --cacert /etc/elasticsearch/certs/http_ca.crt "https://127.0.0.1:9200/test_index/_mapping/?pretty" Enter host password for user 'elastic': { "test_index" : { "mappings" : { "properties" : { "content" : { "type" : "text", "fields" : { "keyword" : { "type" : "keyword", "ignore_above" : 256 } } }, "description" : { "type" : "text", "fields" : { "keyword" : { "type" : "keyword", "ignore_above" : 256 } } }, "subject" : { "type" : "text", "fields" : { "keyword" : { "type" : "keyword", "ignore_above" : 256 } } } } } } } # データ確認 root@dlp:~# curl -u elastic --cacert /etc/elasticsearch/certs/http_ca.crt "https://127.0.0.1:9200/test_index/_doc/001?pretty" Enter host password for user 'elastic': { "_index" : "test_index", "_id" : "001", "_version" : 1, "_seq_no" : 0, "_primary_term" : 1, "found" : true, "_source" : { "subject" : "Test Post No.1", "description" : "This is the initial post", "content" : "This is the test message for using Elasticsearch." } } # データ検索 # 例の検索条件は [description] に [initial] 含む root@dlp:~# curl -u elastic --cacert /etc/elasticsearch/certs/http_ca.crt "https://127.0.0.1:9200/test_index/_search?q=description:initial&pretty=true" Enter host password for user 'elastic': { "took" : 13, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 1, "relation" : "eq" }, "max_score" : 0.2876821, "hits" : [ { "_index" : "test_index", "_id" : "001", "_score" : 0.2876821, "_source" : { "subject" : "Test Post No.1", "description" : "This is the initial post", "content" : "This is the test message for using Elasticsearch." } } ] } } |
Sponsored Link |