Elastic Stack 5 : Elasticsearch インストール2017/04/12 |
|
全文検索エンジン Elasticsearch をインストールします。
|
|
| [1] |
こちらを参考に Java をインストールしておきます。
|
| [2] | Elasticsearch をインストールして起動します。 |
|
[root@dlp ~]#
vi /etc/yum.repos.d/elasticsearch.repo # 新規作成 [elasticsearch-5.x] name=Elasticsearch repository for 5.x packages baseurl=https://artifacts.elastic.co/packages/5.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md
[root@dlp ~]#
yum -y install elasticsearch # 動作確認 [root@dlp ~]# curl http://127.0.0.1:9200
{
"name" : "QekSksw",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "21ZfbH_cQRud1xwZPZtkYA",
"version" : {
"number" : "5.3.0",
"build_hash" : "3adb13b",
"build_date" : "2017-03-23T03:31:50.652Z",
"build_snapshot" : false,
"lucene_version" : "6.4.1"
},
"tagline" : "You Know, for Search"
}
|
| [3] | 日本語が扱えるようにプラグインをインストールします。 |
|
# analysis-kuromoji インストール [root@dlp ~]# /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji -> Downloading analysis-kuromoji from elastic [=================================================] 100% -> Installed analysis-kuromoji # インストール済みプラグイン表示 [root@dlp ~]# /usr/share/elasticsearch/bin/elasticsearch-plugin list analysis-kuromoji |
| [4] | 基本的な使い方です。 まず最初に Index を作成します。RDB のデータベースに相当する概念です。 |
|
# Index 一覧を表示 (pretty は JSON形式の表示を見易くするオプション) [root@dlp ~]# curl http://127.0.0.1:9200/_aliases?pretty { } # Index 作成 (ElasticSearch 5.0以降はPOSTでのIndex作成不可) [root@dlp ~]# curl -X PUT "http://127.0.0.1:9200/test_index" {"acknowledged":true,"shards_acknowledged":true} # 確認 [root@dlp ~]# curl http://127.0.0.1:9200/_aliases?pretty
{
"test_index" : {
"aliases" : { }
}
}
[root@dlp ~]# curl http://127.0.0.1:9200/test_index/_settings?pretty
{
"test_index" : {
"settings" : {
"index" : {
"creation_date" : "1492062413921",
"number_of_shards" : "5",
"number_of_replicas" : "1",
"uuid" : "8h--wu58TiiMVPLcuFYL5Q",
"version" : {
"created" : "5030099"
},
"provided_name" : "test_index"
}
}
}
}
|
| [5] | Mapping とテストデータの投入を実行します。 Mapping は Index の構造を定義するものです。データを投入すると自動で Mapping 定義されますが、手動で定義することももちろん可能です。 |
|
# データ投入 [root@dlp ~]# curl -X PUT "http://127.0.0.1:9200/test_index/doc01/1" -d '{
"subject" : "Test Post No.1",
"description" : "This is the initial post",
"content" : "This is the test message for using Elasticsearch."
}'
# Mapping 確認 [root@dlp ~]# curl "http://127.0.0.1:9200/test_index/_mapping/doc01?pretty"
{
"test_index" : {
"mappings" : {
"doc01" : {
"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 "http://127.0.0.1:9200/test_index/doc01/1?pretty"
{
"_index" : "test_index",
"_type" : "doc01",
"_id" : "1",
"_version" : 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 "http://127.0.0.1:9200/test_index/doc01/_search?q=description:initial&pretty=true"
{
"took" : 7,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 0.2824934,
"hits" : [
{
"_index" : "test_index",
"_type" : "doc01",
"_id" : "1",
"_score" : 0.2824934,
"_source" : {
"subject" : "Test Post No.1",
"description" : "This is the initial post",
"content" : "This is the test message for using Elasticsearch."
}
}
]
}
}
|
| Sponsored Link |
|
|