μ΄ λ¬Έμλ Elasticsearchμμ λ§€ν(mapping)μ ν¨μ¨μ μΌλ‘ μ€κ³νκΈ° μν νκ³Ό κ°λ
λ€μ
http://localhost:9200/contents
κΈ°μ€μΌλ‘ μ€λͺ
ν©λλ€.
1. π― λ§€ν μ€κ³ μνλ ν
π§Ή λΆνμν νλ μ κ±°
- μ μ₯ν νμκ° μλ λ°μ΄ν°λ λ§€ν μ체λ₯Ό νμ§ μκ±°λ
_source
μμ μ μΈ - κ²μ/νν°λ§/μ§κ³μ μ°μ΄μ§ μλ λ°μ΄ν°λ μ μΈνλ κ²μ΄ μ±λ₯μ μ 리
π§· νμ
λͺ
νν μ§μ
λ°μ΄ν° μμ | μ μ ν νμ
|
---|
λ μ§ | date |
μ μ | integer |
κ°κ²© | float |
μ΄λ©μΌ, URL | keyword |
λ³Έλ¬Έ, μ€λͺ
, μ λͺ© | text |
π« λμ λ§€ν(auto mapping) μ£Όμ
- μ€μ νμ§ μμΌλ©΄ μλμΌλ‘
text + keyword
λ‘ λ§€νλ¨ β μμΉ μλ λΆμκΈ° μ μ© κ°λ₯μ± - λͺ
μμ μΈ λ§€ν μ μ κΆμ₯
2. βοΈ text vs keyword
νλͺ© | text | keyword |
---|
λΆμ μ¬λΆ | λΆμλ¨ (tokenizer, filter μ μ©) | λΆμλμ§ μμ (μ μ²΄κ° κ·Έλλ‘) |
κ²μ λͺ©μ | μ λ¬Έ(full-text) κ²μ | μ νν μΌμΉ, μ§κ³/μ λ ¬/νν°μ© |
μμ νλ | μ λͺ©, λ΄μ©, λκΈ | ID, μ΄λ©μΌ, νκ·Έ, μΉ΄ν
κ³ λ¦¬ |
3. π multi-field μ λ΅
π§ νλμ νλλ₯Ό μ¬λ¬ λ°©μμΌλ‘ νμ©
μ: title
νλλ₯Ό κ²μλ νκ³ , μ λ ¬/μ§κ³λ νλ €λ©΄?
"title": {
"type": "text",
"fields": {
"raw": {
"type": "keyword"
}
}
}
title
: λΆμλ text νλ β κ²μμ©title.raw
: keyword νλ β μ λ ¬/μ§κ³μ©
4. π§© object vs nested μ°¨μ΄
object (ννν ꡬ쑰)
"author": {
"type": "object",
"properties": {
"name": { "type": "text" },
"email": { "type": "keyword" }
}
}
- μ₯μ : κ°λ¨ν¨
- λ¨μ : λ°°μ΄μΌ κ²½μ° κ°μ λ§€μΉ μ€λ₯ λ°μ κ°λ₯
nested (κ΄κ³ 보μ₯)
"comments": {
"type": "nested",
"properties": {
"user": { "type": "keyword" },
"content": { "type": "text" }
}
}
- μ₯μ : κ°κ°μ λ°°μ΄ μμκ° λ
립μ μΈ λ¬Έμμ²λΌ μ²λ¦¬λμ΄ μ νν λ§€μΉ κ°λ₯
- λ¨μ : μΏΌλ¦¬κ° μ½κ° 볡μ‘ν¨
π§Ύ μμ½ μ 리
μ λ΅ νλͺ© | ν΅μ¬ μμ½ |
---|
νλ μ΅μν | κΌ νμν νλλ§ μ μ₯ |
νμ
λͺ
νν | μ«μ/λ μ§/ν
μ€νΈ νμ
κ΅¬λΆ |
text vs keyword | κ²μ vs μ λ ¬/μ§κ³μ© κ΅¬λΆ |
multi-field μ¬μ© | νλμ νλλ₯Ό μ¬λ¬ μ©λλ‘ νμ© (text + keyword ) |
nested ꡬ쑰 νμ© | λ°°μ΄ λ΄ κ΄κ³λ₯Ό μ νν 보μ₯ν΄μΌ ν κ²½μ° μ¬μ© |