SlideShare a Scribd company logo
1 of 20
ELASTICSEARCH
김종민
E-mail : kimjmin@gmail.com
Blog : http://kimjmin.net
Twitter : @kimjmin
Elasticsearch
• Schema-free
• Distributed & horizontally scalable
• Restful API
• JSON Document based
• Open Source : Apache License 2.0
• Written in Java
• Apache Lucene.
Elasticsearch 1분만에 설치하기
• wget https://download.elasticsearch.org/ ... /elasticsearch-
1.0.1.tar.gz
http://www.elasticsearch.org/download/
• tar –xvfz elasticsearch-1.0.1.tar.gz
• cd elasticsearch-1.0.1
• bin/elasticsearch [-d]
살아있는지 체크 (curl & 브라우저)
$ curl localhost:9200
{
"status" : 200,
"name" : "Arcade",
"version" : {
"number" : "1.0.1",
"build_hash" : "5c03844e1978e5cc924dab2a423dc63ce881c42b",
"build_timestamp" : "2014-02-25T15:52:53Z",
"build_snapshot" : false,
"lucene_version" : "4.6"
},
"tagline" : "You Know, for Search"
}
데이터 구조
관계 DB Elasticsearch
Database Index
Table Type
Row Document
Column Field
Schema Mapping
데이터 입력
• curl -XPUT host:port/<인덱스>/<타입>/[id]
$ curl -XPUT localhost:9200/books/book/1 -d '
{
"title" : "Elasticsearch Guide ",
"author" : "Kim",
"started" : "2014-03-14",
"pages" : 250
}'
{"_index":"books","_type":"book","_id":"1","_version":1,"created":true}
데이터 수정
• 동일한 Index/Type/ID 로 데이터 입력
$ curl -XPUT localhost:9200/books/book/1 -d '
{
"title" : "Elasticsearch Guide",
"author" : ["Kim", "Lee"],
"started" : "2014-03-14",
"pages" : 250
}'
{"_index":"books","_type":"book","_id":"1","_version":2,"created":false}
데이터 확인
$ curl -XGET localhost:9200/books/book/1
{"_index":"books","_type":"book","_id":"1","_version":2,"found":true, "_source" :
{
"title" : "Elasticsearch Guide",
"author" : ["Kim", "Lee"],
"started" : "2014-03-14",
"pages" : 250
}
}
데이터 삭제
$ curl -XDELETE localhost:9200/books/book/1
{"found":true,"_index":"books","_type":"book","_id":"1","_version":3}
URI 검색
$ curl –XGET localhost:9200/books/book/_search?q=elasticsearch
$ curl -XGET localhost:9200/books/book/_search?q=easy
{"took":3,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"t
otal":1,"max_score":0.095891505,"hits":[{"_index":"books","_type":"book","_id":"
2","_score":0.095891505, "_source" :
{
"title" : "Elasticsearch Easy Guide 2",
"author" : ["Kim","Lee"],
"started" : "2014-03-20",
"pages" : 300
}}]}}
URI 검색 (계속)
$ curl –XGET localhost:9200/books/book/_search?q=title:elasticsearch
$ curl -XGET localhost:9200/books/book/_search?q=author:elasticsearh
{"took":1,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"t
otal":0,"max_score":null,"hits":[]}}
Request Body 검색
$ curl localhost:9200/books/book/_search -d '
{
"query" : {
"term" : { "title" : "elasticsearch" }
}
}'
Shard & Replicas (Head plugin)
• bin/plugin -install mobz/elasticsearch-head
$ curl -XPUT localhost:9200/books -d '
{
"settings" : {
"number_of_shards" : 4,
"number_of_replicas" : 1
}
}'
$ curl -XPUT localhost:9200/magazine -d '
{
"settings" : {
"number_of_shards" : 2,
"number_of_replicas" : 0
}
}'
Shard & Replicas
Shard & Replicas
환경 설정 - 노드명
• config/elasticsearch.yml
• cluster.name: elasticsearch
• node.name: “node1”
• bin/elasticsearch -Des.node.name=node1
• bin/elasticsearch --node.name=node1
노드 바인딩
• 실행 포트 : 9200~
• 바인딩 포트 : 9300~
환경 설정 – 마스터노드, 데이터노드
• config/elasticsearch.yml
• node.master: false
• node.data: true
• bin/elasticsearch -Des.node.data=true
• bin/elasticsearch --node.data=true
환경 설정 – 마스터노드, 데이터노드
감사합니다
• http://elasticsearch.or.kr
• 한국 엘라스틱서치 유저그룹
https://www.facebook.com/groups/elasticsearch.kr/

More Related Content

What's hot

Gazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapmGazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapm
Masahiro Nagano
 
ETL With Cassandra Streaming Bulk Loading
ETL With Cassandra Streaming Bulk LoadingETL With Cassandra Streaming Bulk Loading
ETL With Cassandra Streaming Bulk Loading
alex_araujo
 
glance replicator
glance replicatorglance replicator
glance replicator
irix_jp
 
mongoDB Performance
mongoDB PerformancemongoDB Performance
mongoDB Performance
Moshe Kaplan
 
Introduction to JCR and Apache Jackrabbi
Introduction to JCR and Apache JackrabbiIntroduction to JCR and Apache Jackrabbi
Introduction to JCR and Apache Jackrabbi
Jukka Zitting
 

What's hot (20)

ニコニコ動画を検索可能にしてみよう
ニコニコ動画を検索可能にしてみようニコニコ動画を検索可能にしてみよう
ニコニコ動画を検索可能にしてみよう
 
MongoDB's New Aggregation framework
MongoDB's New Aggregation frameworkMongoDB's New Aggregation framework
MongoDB's New Aggregation framework
 
Side by Side with Elasticsearch and Solr
Side by Side with Elasticsearch and SolrSide by Side with Elasticsearch and Solr
Side by Side with Elasticsearch and Solr
 
The emerging world of mongo db csp
The emerging world of mongo db   cspThe emerging world of mongo db   csp
The emerging world of mongo db csp
 
ElasticSearch
ElasticSearchElasticSearch
ElasticSearch
 
Functional Hostnames and Why they are Bad
Functional Hostnames and Why they are BadFunctional Hostnames and Why they are Bad
Functional Hostnames and Why they are Bad
 
10 Key MongoDB Performance Indicators
10 Key MongoDB Performance Indicators  10 Key MongoDB Performance Indicators
10 Key MongoDB Performance Indicators
 
Null Bachaav - May 07 Attack Monitoring workshop.
Null Bachaav - May 07 Attack Monitoring workshop.Null Bachaav - May 07 Attack Monitoring workshop.
Null Bachaav - May 07 Attack Monitoring workshop.
 
Gazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapmGazelle - Plack Handler for performance freaks #yokohamapm
Gazelle - Plack Handler for performance freaks #yokohamapm
 
The tale of 100 cve's
The tale of 100 cve'sThe tale of 100 cve's
The tale of 100 cve's
 
ETL With Cassandra Streaming Bulk Loading
ETL With Cassandra Streaming Bulk LoadingETL With Cassandra Streaming Bulk Loading
ETL With Cassandra Streaming Bulk Loading
 
glance replicator
glance replicatorglance replicator
glance replicator
 
MongoDB: How it Works
MongoDB: How it WorksMongoDB: How it Works
MongoDB: How it Works
 
mongoDB Performance
mongoDB PerformancemongoDB Performance
mongoDB Performance
 
Redis and its many use cases
Redis and its many use casesRedis and its many use cases
Redis and its many use cases
 
Solr for Indexing and Searching Logs
Solr for Indexing and Searching LogsSolr for Indexing and Searching Logs
Solr for Indexing and Searching Logs
 
Introduction to JCR and Apache Jackrabbi
Introduction to JCR and Apache JackrabbiIntroduction to JCR and Apache Jackrabbi
Introduction to JCR and Apache Jackrabbi
 
MySQL Slow Query log Monitoring using Beats & ELK
MySQL Slow Query log Monitoring using Beats & ELKMySQL Slow Query log Monitoring using Beats & ELK
MySQL Slow Query log Monitoring using Beats & ELK
 
Nodejs - A quick tour (v6)
Nodejs - A quick tour (v6)Nodejs - A quick tour (v6)
Nodejs - A quick tour (v6)
 
MongoDB-SESSION03
MongoDB-SESSION03MongoDB-SESSION03
MongoDB-SESSION03
 

Similar to Elasticsearch 설치 및 기본 활용

201304 chef for open stack overview
201304 chef for open stack overview201304 chef for open stack overview
201304 chef for open stack overview
OpenStack Foundation
 
201304 chef for open stack overview
201304 chef for open stack overview201304 chef for open stack overview
201304 chef for open stack overview
OpenStack Foundation
 
How ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps lifeHow ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps life
琛琳 饶
 

Similar to Elasticsearch 설치 및 기본 활용 (20)

Monitoring Docker at Scale - Docker San Francisco Meetup - August 11, 2015
Monitoring Docker at Scale - Docker San Francisco Meetup - August 11, 2015Monitoring Docker at Scale - Docker San Francisco Meetup - August 11, 2015
Monitoring Docker at Scale - Docker San Francisco Meetup - August 11, 2015
 
2 docker engine_hands_on
2 docker engine_hands_on2 docker engine_hands_on
2 docker engine_hands_on
 
Elasticsearch und die Java-Welt
Elasticsearch und die Java-WeltElasticsearch und die Java-Welt
Elasticsearch und die Java-Welt
 
Logstash
LogstashLogstash
Logstash
 
Rack
RackRack
Rack
 
Node.js 與 google cloud storage
Node.js 與 google cloud storageNode.js 與 google cloud storage
Node.js 與 google cloud storage
 
Getting Started with PureScript
Getting Started with PureScriptGetting Started with PureScript
Getting Started with PureScript
 
201304 chef for open stack overview
201304 chef for open stack overview201304 chef for open stack overview
201304 chef for open stack overview
 
201304 chef for open stack overview
201304 chef for open stack overview201304 chef for open stack overview
201304 chef for open stack overview
 
Chef for OpenStack: OpenStack Spring Summit 2013
Chef for OpenStack: OpenStack Spring Summit 2013Chef for OpenStack: OpenStack Spring Summit 2013
Chef for OpenStack: OpenStack Spring Summit 2013
 
Chef & OpenStack: OSCON 2014
Chef & OpenStack: OSCON 2014Chef & OpenStack: OSCON 2014
Chef & OpenStack: OSCON 2014
 
06 integrate elasticsearch
06 integrate elasticsearch06 integrate elasticsearch
06 integrate elasticsearch
 
How ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps lifeHow ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps life
 
Amazon EC2 Container Service in Action
Amazon EC2 Container Service in ActionAmazon EC2 Container Service in Action
Amazon EC2 Container Service in Action
 
Docker Swarm 0.2.0
Docker Swarm 0.2.0Docker Swarm 0.2.0
Docker Swarm 0.2.0
 
Elasticsearch Introduction
Elasticsearch IntroductionElasticsearch Introduction
Elasticsearch Introduction
 
Java clients for elasticsearch
Java clients for elasticsearchJava clients for elasticsearch
Java clients for elasticsearch
 
Chickens & Eggs: Managing secrets in AWS with Hashicorp Vault
Chickens & Eggs: Managing secrets in AWS with Hashicorp VaultChickens & Eggs: Managing secrets in AWS with Hashicorp Vault
Chickens & Eggs: Managing secrets in AWS with Hashicorp Vault
 
Kubernetes Boston — Custom High Availability of Kubernetes
Kubernetes Boston — Custom High Availability of KubernetesKubernetes Boston — Custom High Availability of Kubernetes
Kubernetes Boston — Custom High Availability of Kubernetes
 
Chef For OpenStack Overview
Chef For OpenStack OverviewChef For OpenStack Overview
Chef For OpenStack Overview
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 

Elasticsearch 설치 및 기본 활용

  • 1. ELASTICSEARCH 김종민 E-mail : kimjmin@gmail.com Blog : http://kimjmin.net Twitter : @kimjmin
  • 2. Elasticsearch • Schema-free • Distributed & horizontally scalable • Restful API • JSON Document based • Open Source : Apache License 2.0 • Written in Java • Apache Lucene.
  • 3. Elasticsearch 1분만에 설치하기 • wget https://download.elasticsearch.org/ ... /elasticsearch- 1.0.1.tar.gz http://www.elasticsearch.org/download/ • tar –xvfz elasticsearch-1.0.1.tar.gz • cd elasticsearch-1.0.1 • bin/elasticsearch [-d]
  • 4. 살아있는지 체크 (curl & 브라우저) $ curl localhost:9200 { "status" : 200, "name" : "Arcade", "version" : { "number" : "1.0.1", "build_hash" : "5c03844e1978e5cc924dab2a423dc63ce881c42b", "build_timestamp" : "2014-02-25T15:52:53Z", "build_snapshot" : false, "lucene_version" : "4.6" }, "tagline" : "You Know, for Search" }
  • 5. 데이터 구조 관계 DB Elasticsearch Database Index Table Type Row Document Column Field Schema Mapping
  • 6. 데이터 입력 • curl -XPUT host:port/<인덱스>/<타입>/[id] $ curl -XPUT localhost:9200/books/book/1 -d ' { "title" : "Elasticsearch Guide ", "author" : "Kim", "started" : "2014-03-14", "pages" : 250 }' {"_index":"books","_type":"book","_id":"1","_version":1,"created":true}
  • 7. 데이터 수정 • 동일한 Index/Type/ID 로 데이터 입력 $ curl -XPUT localhost:9200/books/book/1 -d ' { "title" : "Elasticsearch Guide", "author" : ["Kim", "Lee"], "started" : "2014-03-14", "pages" : 250 }' {"_index":"books","_type":"book","_id":"1","_version":2,"created":false}
  • 8. 데이터 확인 $ curl -XGET localhost:9200/books/book/1 {"_index":"books","_type":"book","_id":"1","_version":2,"found":true, "_source" : { "title" : "Elasticsearch Guide", "author" : ["Kim", "Lee"], "started" : "2014-03-14", "pages" : 250 } }
  • 9. 데이터 삭제 $ curl -XDELETE localhost:9200/books/book/1 {"found":true,"_index":"books","_type":"book","_id":"1","_version":3}
  • 10. URI 검색 $ curl –XGET localhost:9200/books/book/_search?q=elasticsearch $ curl -XGET localhost:9200/books/book/_search?q=easy {"took":3,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"t otal":1,"max_score":0.095891505,"hits":[{"_index":"books","_type":"book","_id":" 2","_score":0.095891505, "_source" : { "title" : "Elasticsearch Easy Guide 2", "author" : ["Kim","Lee"], "started" : "2014-03-20", "pages" : 300 }}]}}
  • 11. URI 검색 (계속) $ curl –XGET localhost:9200/books/book/_search?q=title:elasticsearch $ curl -XGET localhost:9200/books/book/_search?q=author:elasticsearh {"took":1,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"t otal":0,"max_score":null,"hits":[]}}
  • 12. Request Body 검색 $ curl localhost:9200/books/book/_search -d ' { "query" : { "term" : { "title" : "elasticsearch" } } }'
  • 13. Shard & Replicas (Head plugin) • bin/plugin -install mobz/elasticsearch-head $ curl -XPUT localhost:9200/books -d ' { "settings" : { "number_of_shards" : 4, "number_of_replicas" : 1 } }' $ curl -XPUT localhost:9200/magazine -d ' { "settings" : { "number_of_shards" : 2, "number_of_replicas" : 0 } }'
  • 16. 환경 설정 - 노드명 • config/elasticsearch.yml • cluster.name: elasticsearch • node.name: “node1” • bin/elasticsearch -Des.node.name=node1 • bin/elasticsearch --node.name=node1
  • 17. 노드 바인딩 • 실행 포트 : 9200~ • 바인딩 포트 : 9300~
  • 18. 환경 설정 – 마스터노드, 데이터노드 • config/elasticsearch.yml • node.master: false • node.data: true • bin/elasticsearch -Des.node.data=true • bin/elasticsearch --node.data=true
  • 19. 환경 설정 – 마스터노드, 데이터노드
  • 20. 감사합니다 • http://elasticsearch.or.kr • 한국 엘라스틱서치 유저그룹 https://www.facebook.com/groups/elasticsearch.kr/