Elastic Stack 8 : Elasticsearch インストール2024/09/25 |
|
全文検索エンジン Elasticsearch をインストールします。 |
|
| [1] | |
| [2] | Elasticsearch をインストールして起動します。 |
|
root@dlp:~ #
pkg install -y elasticsearch8 curl
root@dlp:~ #
sysctl security.bsd.unprivileged_mlock=1 root@dlp:~ # echo 'security.bsd.unprivileged_mlock=1' >> /etc/sysctl.conf
root@dlp:~ #
service elasticsearch enable elasticsearch enabled in /etc/rc.conf root@dlp:~ # service elasticsearch start Starting elasticsearch. # 管理ユーザーのパスワードをリセット root@dlp:~ # elasticsearch-reset-password --auto --username elastic This tool will reset the password of the [elastic] user to an autogenerated value. The password will be printed in the console. Please confirm that you would like to continue [y/N]y Password for the [elastic] user successfully reset. New value: VC3wulb8T4euiA+DxIbO # 動作確認 # パスワードは上で表示されたパスワードで応答 root@dlp:~ # curl -u elastic --cacert /usr/local/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" : "Tkls9_WiRm-XricowHjEVA",
"version" : {
"number" : "8.11.3",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "64cf052f3b56b1fd4449f5454cb88aca7e739d9a",
"build_date" : "2023-12-08T11:33:53.634979452Z",
"build_snapshot" : false,
"lucene_version" : "9.8.0",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
|
| [3] |
Elasticsearch を他ホストからも利用する場合は、クラスターの設定を参照ください。 |
| [4] | 日本語が扱えるようにプラグインをインストールします。 |
|
# analysis-kuromoji インストール root@dlp:~ # 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:~ # elasticsearch-plugin list analysis-kuromoji |
| [5] | 基本的な使い方です。 まず最初に Index を作成します。RDB のデータベースに相当する概念です。 |
|
# Index 一覧を表示 (pretty は JSON 形式の表示を見易くするオプション) root@dlp:~ # curl -u elastic --cacert /usr/local/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 /usr/local/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 /usr/local/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 /usr/local/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" : "1726619545200",
"number_of_replicas" : "1",
"uuid" : "MDldtWojT7ScXGXUzVmiIg",
"version" : {
"created" : "8500003"
}
}
}
}
}
|
| [6] | Mapping とテストデータの投入を実行します。 Mapping は Index の構造を定義するものです。データを投入すると自動で Mapping 定義されますが、手動で定義することももちろん可能です。 |
|
# データ投入 root@dlp:~ # curl -u elastic --cacert /usr/local/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 /usr/local/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 /usr/local/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 /usr/local/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" : 61,
"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 |
|
|