์ ๊ฐ์ ๊ฒฝ์ฐ Elasitc Search๋ฅผ ์ฌ์ฉํ ๋ ์ง์ API ๋ฌธ์ ๋ณด๊ณ ์๋ฐ ์ฝ๋๋ก ์์ฑํฉ๋๋ค. API ๋ฌธ์๊ฐ ์์ด์ด๊ธด ํ์ง๋ง ์๋นํ ์์ธํ ๋์์์ต๋๋ค.
์๋ ๋งํฌ๋ Elasitc Search ๊ณต์ API ๋ฐ ์ฌ์ฉ๋ฒ ๋ฌธ์์ ๋๋ค.
์ฃผ์ ํ ๋งํ ์ ์ ์ต์ jdk1.8์ด์์ด์ฌ์ผ ํ๋ค๋ ์ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ 6.x๋ฒ์ ๋ค์ ํธํ์ด ์ ๋๋ก ์๋ ์๋ ์๋ค๊ณ ํฉ๋๋ค.
์ ์๋ฒ ํ๊ฒฝ์ ์๋์ ๊ฐ์ต๋๋ค.
- CentOS7
- JDK1.8
- ElasticSearch 7.13.4
- maven 3.x
[STEP1] maven pom.xml์์ Elastic Search(์ดํ ES) dependency์ ์์ฑํด์ค๋๋ค.
<!-- elasticsearch -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.13.4</version>
</dependency>
The High Level Java REST Client depends on the following artifacts and their transitive dependencies:
- org.elasticsearch.client:elasticsearch-rest-client
- org.elasticsearch:elasticsearch
[STEP2] ES์ ์ฐ๋ํ๊ธฐ
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(
new HttpHost("localhost", 9200, "http"));
์์ ์ฝ๋๋ฅผ ์์ฑํจ์ผ๋ก์จ ES ์๋ฒ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ES๋ ๊ธฐ๋ณธ ํฌํธ๊ฐ 9200์ ๋๋ค.
client.close();
๊ทธ๋ฆฌ๊ณ ํญ์ ๋์ ํด์ ๋ฅผ ํด์ฃผ๋ ๊ฒ์ฒ๋ผ client๋ฅผ ๋ซ์์ฃผ์ด์ผ ํฉ๋๋ค.
* ์ฐธ๊ณ : ๋ง์ฝ ์ฌ์ฉ์ ์ธ์ฆ์ ํด์ผํ๋ค๋ฉด ์๋ ๊ธ์ ์ฐธ๊ณ ํด์ฃผ์ธ์.
[FINAL STEP] INDEX ์์ฑํ๊ธฐ
ES์์ INDEX๋ ๊ธฐ์กด RDB์๋ ๊ฐ๋ ์ด ๋ค๋ฆ ๋๋ค. ES์์ INDEX๋ DB์ ๊ฐ๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
- INDEX = DB(SCHEMA)
- TYPE = TABLE ( 7.x ์ด์๋ถํฐ๋ TPYE์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๊ณต์๋ฌธ์ ์ฐธ๊ณ )
- DOCUMENTs = ROWS
์ญ์ ๊ณต์ ๋ฌธ์์ ์๋นํ ์์ธํ ๋์์์ต๋๋ค. ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋๋ฐ ์ ๊ฐ์ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ด INDEX๋ฅผ ์์ฑํฉ๋๋ค.
GetIndexRequest indexRequest = new GetIndexRequest("st_pdt");
BulkRequest bulkRequest = new BulkRequest();
int pdt_id=0;
for(Pdt pdt : pdtList) {
builder.startObject();
{
builder.field("s_id", pdt.getShopid());
builder.field("s_name", pdt.getS_name());
}
builder.endObject();
bulkRequest.add(new IndexRequest("st_pdt").id(String.valueOf(pdt_id)).source(builder));
pdt_id++;
}
Single document APIs์ธ Index API์ Multi document APIs์ธ Bulk API๊ฐ ์๋๋ฐ ์ด๋ฆ ๊ทธ๋๋ก ํ๋์ฉ ๋ฐ์ดํฐ๋ฅผ INSERT ํ ๊ฑฐ๋ ์ฌ๋ฌ๊ฐ๋ฅผ ํ ๊ฑฐ๋์ ์ฐจ์ด์ ๋๋ค. ๋๋ ๋ฐ์ดํฐ๋ฅผ INSERT ํ๋ ค๊ณ ์ ๋ Bulk API๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
GetIndexRequest๋ฅผ ์ด์ฉํ์ฌ st_pdt INDEX๋ฅผ ์์ฑํ์๊ณ , BulkRequest๋ฅผ ์ด์ฉํ์ฌ ๋๋์ ๋ฐ์ดํฐ๋ฅผ st_pdt INDEX์ INSERTํ์์ต๋๋ค.
$ curl -X GET "localhost:9200/st_pdt" ๋ช ๋ น์ด๋ฅผ ํตํด ์ ๋๋ก INDEX๊ฐ ๋ง๋ค์ด์ก๋์ง ํ์ธํฉ๋๋ค.
์ด์ ์๋ฐ์ ES๋ฅผ ์ฐ๋ํด๋ดค์ต๋๋ค. ๋ค์ ๊ธ์์๋ ๋ฐฉ๊ธ ์์ฑํ st_pdt์์ ๋ฐ์ดํฐ๋ฅผ GETํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
'...' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kubernetes] ์ค๋ธ์ ํธ ์์ฑ์ run, create, apply ์ฐจ์ด (0) | 2021.08.20 |
---|---|
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ์ฟ ํค ์์ฑ, ์ ์ฅ, ์ญ์ ๊ตฌํํ๊ธฐ (0) | 2021.08.20 |
[Elastic Search+Java] ์ฌ์ฉ์ ์ธ์ฆ ๊ตฌํํ๊ธฐ Basic Authentication (0) | 2021.08.19 |
[ElasticSearch] ElasticSearch ์ธ๋ถ ์ ์ํ๊ธฐ (0) | 2021.08.18 |
[ElasticSearch]Elasticsearch ๋ณด์ ์ ์ฉ ๋ฐฉ๋ฒ (0) | 2021.08.18 |