์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- enum ์์ฑ์ ์ ๊ทผ ์ ํ์
- SVN
- ์์
- ์ํฐ๋ ๊ฐ๋ฐ์ํ์ฌ
- index full scan
- ๋น์ผ๊ฐ์ฒด์์ฑ
- Hikari Connection Pool
- mysql
- ์ํฐ๋ ๋ณ์ข ๊ฐ๋ฐ์
- ์๋ฐ์์์ฐ๋ ๋๋ฅผ ์ฌ์ฉํ๋ ์ด์
- effectiveJava
- assert.notnull
- builder null
- ์ธ๋ฑ์ค์คํต์ค์บ
- ์ดํํฐ๋ธ์๋ฐ
- ์๋ฐ์ฐ๋ ๋
- mysql์ํคํ ์ฒ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฒฉ๋ฆฌ์์ค
- Item6
- ์๋ผ์คํฑ์์น๋ฉ์ธ์ง์ฉ๋
- item15
- hikari cp ์ค์
- index skip scan
- InnoDB์ํคํ ์ฒ
- ์๋ฐ์์
- ์๋ฐ๋ผ์ด๋ธ์คํฐ๋
- ์ธ๋ฑ์คํ์ค์บ
- ์๋ฐ
- ๋ฐ์ฉ๋ ์ค๊ตญ์ด
- ์์ดํ 15
- Today
- Total
โ๐ป๊ธฐ๋กํ๋ ๋ธ๋ก๊ทธ
ElasticSearch ๊ฐ๋จ ์ ๋ฆฌ ๋ณธ๋ฌธ
ํน์ง
- ๋ํ๋จผํธ
๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ธฐ๋ณธ ๋จ์์ด๋ฉฐ JSONํํ
7.x ๋ฒ์ ์ดํ์๋ ํ์ ์ด ์ญ์ ๋๋ฉด์ RDMS์ ๋น๊ตํ ์ ์๋์ ๊ฐ์ด ์ดํดํ๋ฉด ์ข๋ค.
table index
rdbms | es |
table | index |
record | document |
column | field |
schema | mapping |
- ๋ถ์๊ธฐ(Analyzer)์ ์ํด ๋ถ์ ํ ํ ํฐ์ผ๋ก ๋ถ๋ฆฌ
- ๊ฒ์์ด ์์ฒญ์ด ์ค๋ฉด ๋ถ์๊ธฐ๋ฅผ ํตํด ๋ถ์๋ ํ ํฐ๊ณผ ์ผ์น์ฌ๋ถ ํ๋จ ํ ๊ฒฐ๊ณผ์ score์ ๋งค๊น
- ๋ค์ํ ๊ฒ์๊ธฐ๋ฅ์ ์ํด Query DSL์ด๋ ์ฟผ๋ฆฌ ๋ฌธ๋ฒ ์กด์ฌ
์ธ๋ฑ์ค
๋ํ๋จผํธ๋ฅผ ์ ์ฅํ๋ ๋ ผ๋ฆฌ์ ๋จ์
๋ค์ด๋ ๋งฅ ๋งคํ
์ธ๋ฑ์ค ์์ฑ ํ ๋งคํ์ ์ค์ ํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์๋ง์ ์๋ผ์คํฑ์์น๊ฐ ์๋์ผ๋ก ์ ๋ ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ณ ์๋์ผ๋ก ๊ฒฐ์ ๊ทธ์ ๋ฐ๋๋ ๋ช ์์ ๋งคํ
index ๊ด๋ จ ์์ฒญ
๋ชจ๋ index์กฐํ
# curl -XGET 'localhost:9200/_cat/indices?v'
alias ๊ด๋ จ ์์ฒญ
alias ์กฐํ
curl -X GET 'localhost:9200/_cat/aliases?v'
alias ์์ฑ
POST /_aliases?pretty
{
"actions": [
{
"add": {
"index": "company_index",
"alias": "company_tmp"
}
}
]
}
๊ฒ์
- ๊ฒ์์ ์ธ๋ฑ์ค ๋จ์๋ก ๊ฒ์
- GET <์ธ๋ฑ์ค๋ช >/_search ํ์์ผ๋ก ์ฌ์ฉํ๋ฉฐ ์ฟผ๋ฆฌ๋ฅผ ์ ๋ ฅํ์ง ์์ผ๋ฉด ์ ์ฒด ๋ํ๋จผํธ ๊ฒ์
๊ธฐ๋ณธ ๊ฒ์
docment ๋ด์ฉ ์ค java๋ผ๋ ๋ด์ฉ์ด ๋ค์ด์๋ document๊ฒ์
GET index1/_search?q=java
์ฟผ๋ฆฌ ๊ฒ์ ๊ฒฐ๊ณผ
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 2,//๊ฒ์๊ฒฐ๊ณผ count
"relation" : "eq"
},
"max_score" : 5.2783985,
"hits" : [//์ ํ๋๊ฐ ๋์ ์์ผ๋ก ์ถ๋ ฅ
{
"_index" : "index1",
"_type" : "_doc",
"_id" : "QEdBHYEBA0g9hlFCkg_S",
"_score" : 5.2783985,
"_source" : {
"company_id" : 1,
"post_id" : "post-20326-1",
"title" : "์ผ๋ค์ค ๋ผ์ฐ",
"full_content" : "",
"tag" : [
"#Technical Writing"
]
}
},
{
"_index" : "index1",
"_type" : "_doc",
"_id" : "Rkc-HYEBA0g9hlFCGw5w",
"_score" : 3.2347195,
"_source" : {
"company_id" : 1,
"post_id" : "post-121447-1",
"title" : "Alan Davalos",
"full_content" : "",
"tag" : [
"#Web Development",
"#Web Development"
]
}
}
]
}
}
๋ ผ๋ฆฌ์ฐ์ฐ์๋ฅผ ํตํ ๊ฒ์
์) ์์ฑ์์ ๊ธ ์ ๋ชฉ์ผ๋ก ์์ธ๊ฒ์
GET test/_search?q=value AND three
ํน์ ํ๋ ๊ฒ์
GET test/_search?q=value AND three
๋ง๋ฌ๋ ์ด์
1. ๋ ธ๋ฆฌ ํ๋ฌ๊ทธ์ธ ๋ฏธ์ค์น ์ด์
Unknown tokenizer type [nori_tokenizer] for [korean_nori_tokenizer]
๋ ธ๋ฆฌ ํ๋ฌ๊ทธ์ธ์ด ์ค์น ๋์ง์์์ ๋๋ ์ค๋ฅ
elastic search.yml ์ฌ์ค์ ํ ๋์ปค ์ฌ์์ํ๋๋ nori ์ด๊ธฐํ
docker exec -it es01 /bin/bash
cd /usr/share/elasticsearch/bin/
./elasticsearch-plugin install analysis-nori
์ปจํ ์ด๋ ์ ์ ํ ๋ ธ๋ฆฌ ํ๋ฌ๊ทธ์ธ ์ค์น ํ ์ปจํ ์ด๋ ์ฌ์์ ํด์ผํ๋ค.
2. logstash์์ elasticsearch๋ก bulk insert์ ์ปจํ ์ธ ๊ธธ์ด ๋ฌธ์
/config/elasticsearch.yml์ http:.max_content_length ์ค์ ์ด ์๋๋ฐ ์ค์ ๋ ์ฉ๋๋ณด๋ค ์ด๊ณผ๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ฉด ์๋ ์๋ฌ๊ฐ ๋๋ค.
[2022-06-25T14:32:08,741][ERROR][logstash.outputs.elasticsearch][main]
[354953e725df2fa2db15038a6b15d07cfbe8af411ec4e89ee6f5dfbbc81d5364]
Encountered a retryable error (will retry with exponential backoff)
{:code=>400, :url=>"http://[IP:port]/_bulk", :content_length=>37171}
์๋ผ์คํฑ์์น๋ฅผ ๋ฆฌ๋ ์ค ์๋ฒ์ docker compose๋ก ๋์ฐ๊ณ elasticsearch.yml์ ๋ฐ๋ก ์ค์ ํ์ง ์์๋ ์ํ์ฌ์
volume์ ์๋์ ๊ฐ์ด ์ค์ ํ์ผ์ ๋งคํํด์คฌ๋ค.
volumes:
- es-data01:/usr/share/elasticsearch/data
- /usr/workspace/elastic-dockercompose/config/elasticsearch.yml:/etc/elasticsearch/config/elasticsearch.yml
elasticsearch.yml์๋ ๋ฉ์ธ์ง ์ฉ๋์ ์ฌ์ด์ฆ ์ค์ ์ ๋๋ ค์ ์ธํ ํ๋ค.
http:.max_content_length: 1024mb
์ฐธ๊ณ ์ฌ์ดํธ