μνμΉ λ£¨μ¬ κΈ°λ°μ java μ€νμμ€ λΆμ° κ²μμμ§μ΄λ€.
λ°©λν μμ λ°μ΄ν°λ₯Ό μ μνκ³ κ±°μ μ€μκ°μΌλ‘ μ μ₯, κ²μ, λΆμν μ μλ€.
κ²μμμ§μ μμ΄, Lucene
λ그컀ν μ΄ κ³ μν μμμΈ κ΅¬μ‘°μΈ μνμΉ λ£¨μ¬μ κΈ°λ°μΌλ‘ λΆμ°μ²λ¦¬λ₯Ό κ°λ₯νκ²ν μνμΉ μλΌκ° λ±μ₯ν΄μ κ²μμμ§ μμ₯μ μ₯μ νκ³ , λͺλ νμ μμ 루μ¬μ κΈ°λ°μΌλ‘ ν μλΌμ€ν±μμΉκ° λ±μ₯ν΄ μ§κΈμ κ²μμμ§ λΆμΌμμ μ§λ°°μ μΈ μμΉμ μλ€.
-
κ²μμμ§
κ΄ν ν μΉμμ μ 보λ₯Ό μμ§ν΄ κ²μ κ²°κ³Όλ₯Ό μ 곡νλ νλ‘κ·Έλ¨μ΄λ€. -
κ²μμμ€ν
λμ©λ λ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘ μ λ’°μ±μλ κ²μ κ²°κ³Όλ₯Ό μ 곡νκΈ° μν΄ κ²μμμ§μ κΈ°λ°μΌλ‘ ꡬμΆλ μμ€ν μ ν΅μΉνλ μ©μ΄μ΄λ€. -
κ²μμλΉμ€
κ²μμμ§μ κΈ°λ°μΌλ‘ ꡬμΆν κ²μ μμ€ν μ νμ©ν΄ κ²μκ²°κ³Όλ₯Ό μλΉμ€λ‘ μ 곡νλ€.
μλΌμ€ν±μμΉλ μλ°ν λ§νμλ©΄ κ²μμμ§μ΄λ©° μλμμλ κ²μ μλΉμ€λ₯Ό μ 곡νκΈ° μν΄ μλΌμ€ν±μμΉλ₯Ό μ΄μ©ν΄ κ²μ μμ€ν μ ꡬμΆνλ κ²μ λ³΄κ² λ€.
κ²μμλΉμ€ > κ²μμμ€ν > κ²μμμ§
-
μμ§κΈ°
μμ§κΈ°λ μΉμ¬μ΄νΈ, λΈλ‘κ·Έ, μΉ΄ν λ± μΉμμ νμν μ 보λ₯Ό μμ§νλ νλ‘κ·Έλ¨μ΄λ€.
ν¬λ‘€λ¬, μ€νμ΄λ, μ, μΉ λ‘λ΄ λ±μΌλ‘ λΆλ¦°λ€. -
μ μ₯μ
μμΈκΈ°κ° μμΈν λ°μ΄ν°λ₯Ό 보κ΄νλ 물리μ μ μ₯μ -
μμΈκΈ°
μμ§κΈ°κ° μμ§ν λ°μ΄ν°λ₯Ό κ²μ κ°λ₯ν κ΅¬μ‘°λ‘ κ°κ³΅ν΄μ μ μ₯
ννμ λΆμκΈ°λ₯Ό ν΅ν΄ μ μλ―Έν λ¨μ΄λ₯Ό μΆμΆνκ³ κ²μμ μ 리ν μμμΈ κ΅¬μ‘°λ‘ λ°μ΄ν°λ₯Ό μ μ₯ -
κ²μκΈ°
μ μ₯λ λ¬Έμμ€ μ¬μ©μ μ§μμ μΌμΉνλ κ²°κ³Όλ₯Ό μμμΈ κ΅¬μ‘°λ₯Ό ν΅ν΄ μ°Ύμμ λ°ν
μ μ¬λ κΈ°λ°μ κ²μ μμ μκ³ λ¦¬μ¦μΌλ‘ μ¬μ©μ μ§μμ λ¬Έμκ° μΌμΉνλμ§ νλ¨
μμΈμ΄λ νΉμ ν λ°μ΄ν°κ° μ΄λ μμΉμ μλμ§ λ―Έλ¦¬ μ μ₯ν΄λμ΄ κ²μ μμ λΉ λ₯Έ μλλ‘ μ°Ύμ μ μλ€.
μ΄λ₯Όν
λ©΄ 'λλ νκΈΈλ μ
λλ€. λλ μλ²μ§λ₯Ό μλ²μ§λΌ λΆλ₯΄μ§ λͺ» ν©λλ€.' λΌλ λ¬Έμμ΄ λ°μ΄ν°κ° μλ κ²½μ°μ λ€μκ³Ό κ°μ΄ μμΈλ μ μλ€.
1. λλ νκΈΈλ μ
λλ€.
2. λλ μλ²μ§λ₯Ό μλ²μ§λΌ λΆλ₯΄μ§ λͺ»ν©λλ€.
μμ κ°μ΄ μμΈμ΄ λ κ²½μ°μ λ΄κ° λ§μΌ 'νκΈΈλ'μ΄λ λ¨μ΄κ° λ€μ΄κ° λ°μ΄ν°λ₯Ό μ°Ύλλ€κ³ κ²μνλ©΄ μμΈκ²°κ³Όμ λ°λΌ 1λ² λ°μ΄ν°μ λ΄κ° μνλ λ°μ΄ν°κ° μλ€λ κ²°κ³Όκ° λμ¬ μ μλ€.
νμ§λ§ μ΄ λ°©λ²μλ λ¬Έμ κ° μλ€. μ μ λ°μ΄ν° μΌλλ μκ΄μμ§λ§ λ°μ΄ν°κ° λ§€μ° λ§λ€λ©΄
1λ²λΆν° λ λ°μ΄ν°κΉμ§ μμλλ‘ κ²μνμ¬ 'νκΈΈλ'μ΄λ λ¨μ΄λ₯Ό μ°ΎκΈ° λλ¬Έμ μμ²λ μλμ§μ°μ΄ λ°μν μ μλ€.
μ΄λ¬ν νμμ κ°μ νκΈ° μν΄μ μμμΈμ΄ νμνλ€.
μμμΈμ΄λ λ°μ΄ν° μμΈ μμ μ‘°κΈ λ μΈκ°μ μ¬κ³ μ κ°κΉκ² 체κ³λ₯Ό ꡬμ±ν κ²μ΄λ€.
μ΄λ ν λ°μ΄ν°λ₯Ό μμΈν λ Term(λ¨μ΄) κΈ°μ€μΌλ‘ μμΈμ μννλ κ²μ΄λ€.
μμ μμ λ₯Ό μμμΈ νλ€λ©΄ λ€μκ³Ό κ°λ€.
λ #1, 2
λ #1, 2
νκΈΈλ #1
μ
λλ€ #1
μλ²μ§ #2
λ₯Ό #2
λΆλ₯΄μ§ #2
λͺ» #2
ν©λλ€ #2
μ΄λ κ² μμμΈλ λ°μ΄ν°κ° ꡬμ±λμ΄μλ€λ©΄ νκΈΈλμ΄λΌλ λ¨μ΄λ₯Ό λ³΄κ³ λ°λ‘ 1λ² λ¬Έμμ μλ€λ κ²μ μ μ μλ€.
κ²μ μμ λ³΄ν΅ λ¨μ΄λ§ μ
λ ₯νλ κ²½μ°λ μλ€.
λ³΄ν΅ λ¬Έμ₯μ ν΅μ§Έλ‘ κ²μνλλ° λ§μΌ κ·Έ λ¬Έμ₯μ΄ ν΅μ§Έλ‘ κ²μμ΄ λλ€λ©΄ μΌμΉνλ κ²μκ²°κ³Όλ₯Ό μ°ΎκΈ° λ§€μ° μ΄λ €μΈ κ²μ΄λ€.
κ·Έλμ λ¨μ΄μ ννμλ₯Ό λΆμνλ€. κ²μ μνλ λ°©λ²μ μ
λ ₯νλ©΄ λ°μ μ²λΌ λλ μ§κ² λλ€.
κ²μ
μνλ
λ°©λ²
κ²μ, μνλ, λ°©λ²μ νλμ© μμμΈμ λ³΄κ³ μ°Ύμ λ¬Έμκ° λͺλ²μ§Έμ μλμ§ μλ €μ€λ€.
μ¬κΈ°μ νμ§μ΄λ λ΄κ° μνλ κ²μκ²°κ³Όκ° λμλμ§, μλ±ν κ²μ΄ κ²μκ²°κ³Όλ‘ λνλλμ§ λ±μΌλ‘ νκ°ν μ μλ€.
κ²μμμ§μ νμ§μ λμ΄κΈ° μν λ°©λ²μΌλ‘ μ¬λ¬κ°μ§ λ°©λ²μ΄ μλ€.
- μ μ¬λ κΈ°λ° κ²μ : κ²μμ΄μ ν€μλλ€κ°μ μ μ¬λλ₯Ό μΆμ νμ¬ μμ λ ΈμΆ
- μΈκΈ°λ κΈ°λ° κ²μ : μμ£Ό κ²μνλ κ²°κ³Όλ₯Ό μμ λ ΈμΆ
- μ€ν μμ : κ²μμ΄λ₯Ό λΆμνμ¬ μλ―Έμλ λ¨μ΄λ‘ μμ νμ¬ κ²μ (λλ μΆμ²)
- μ λ’°λ κΈ°λ° κ²μ : μ λ’°λ μλ μ¬μ΄νΈ μμ λ ΈμΆ (λ¨μ΄ κ²μμ μ¬μ μ μμ λ ΈμΆ)
- κ²μκ²°κ³Ό λ΄ μ¬κ²μ : κ²μλ κ²°κ³Ό λ²μ λ΄μμ μ¬κ²μ
λ±λ±μ΄ μλλ° μ μ¬λ κΈ°λ° κ²μλ§ μ΄ν΄λ³΄κ² λ€.
μ μ¬λ κΈ°λ° κ²μμ΄λ λ¨μν λ§€μΉλ κ²°κ³Όλ§ λ³΄μ¬μ£Όλ κ²μ΄ μλ μ μ¬μ±μ λ κ²°κ³Όλ₯Ό 보μ¬μ£Όμ΄μΌ νλ€.
TF-IDFκ° λμ λ¨μ΄λ€λΌλ¦¬ λ¬ΆμΌλ©΄ μ μ¬λκ° λλ€κ³ νλ¨
-
TF(Term Frequency)
νΉμ λ¨μ΄κ° λ¬Έμ λ΄μ μΌλ§λ μμ£Ό λ±μ₯νλμ§, λμμλ‘ λ¬Έμμμ μ€μ -
IDF(Inverse Document Frequency)
νΉμ λ¨μ΄κ° μ 체 λ¬Έμμμ μΌλ§λ μμ£Ό λ±μ₯νλμ§μ μμ -
TF-IDF
νΉμ λ¨μ΄κ° ν΄λΉ λ¬Έμμ μμ£Ό λνλκ³ μ 체 μ€μμλ μ κ² λνλλ€.
=> ν΄λΉ λ¬Έμμ μ°κ΄λκ° λλ€
κ²μμμ§μ μ€λͺ
ν λ νμ λΉκ΅λλ κ²μ΄ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(RDBMS)λ€.
λ κ°μ§ λͺ¨λ μ§μμ μΌμΉνλ λ°μ΄ν°λ₯Ό μ°Ύμ μ¬μ©μμκ² μ 곡νλ€λ μ μμ μ μ¬μ μ΄ λ§κΈ° λλ¬Έμ΄λ€.
νμ§λ§ RDBMSλ‘ κ²μκΈ°λ₯μ μ 곡νλλ°λ λ§μ λ¬Έμ μ μ΄ μλ€.
RDBMSλ λͺ¨λ λ°μ΄ν°λ μ€λ³΅μ μ κ±°νκ³ μ ν λ°μ΄ν°λ‘ ꡬ쑰νν΄ νκ³Ό μ΄λ‘ ꡬμ±λ ν
μ΄λΈμ μ μ₯λλ€.
κ·Έλ¦¬κ³ SQLλ¬Έμ μ΄μ©ν΄ μνλ μ 보μ κ²μμ΄ κ°λ₯νλ° ν
μ€νΈ λ§€μΉμ ν΅ν λ¨μν κ²μλ§ κ°λ₯νλ€.
ν
μ€νΈλ₯Ό μ¬λ¬ λ¨μ΄λ‘ λ³ννκ±°λ μ¬λ¬ κ°μ λμμ΄λ μ μμ΄λ₯Ό νμ©ν κ²μμ λΆκ°λ₯νλ€.
λ°λ©΄ κ²μμμ§μ λ°μ΄ν°λ² μ΄μ€μμλ λΆκ°λ₯ν λΉμ ν λ°μ΄ν°λ₯Ό μμΈνκ³ κ²μν μ μλ€.
ννμ λΆμμ ν΅ν΄ μ¬λμ΄ κ΅¬μ¬νλ μμ°μ΄μ μ²λ¦¬κ° κ°λ₯ν΄μ§κ³ μμμΈ κ΅¬μ‘°λ₯Ό λ°νμΌλ‘ λΉ λ₯Έ κ²μ μλλ₯Ό 보μ₯νλ€.
- μλΌμ€ν±μμΉμ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ λΉκ΅
| μλΌμ€ν±μμΉ | κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ |
|---|---|
| μΈλ±μ€ | λ°μ΄ν°λ² μ΄μ€ |
| μ€λ | νν°μ |
| νμ | ν μ΄λΈ |
| λ¬Έμ | ν |
| νλ | μ΄ |
| λ§€ν | μ€ν€λ§ |
| Query DSL | SQL |
- μλΌμ€ν±μμΉμ λ°μ΄ν°λ² μ΄μ€μ μΆκ°,μμ ,μμ λ°©μ μ°¨μ΄
| μλΌμ€ν±μμΉ HTTP λ©μλ | κΈ°λ₯ | λ°μ΄ν°λ² μ΄μ€ μ§μ λ¬Έλ² |
|---|---|---|
| GET | λ°μ΄ν° μ‘°ν | SELECT |
| PUT | λ°μ΄ν° μμ± | INSERT |
| POST | μΈλ±μ€ μ λ°μ΄νΈ, λ°μ΄ν° μ‘°ν | UPDATE, SELECT |
| DELETE | λ°μ΄ν° μμ | DELETE |
| HEAD | μΈλ±μ€μ μ 보 νμΈ | - |
루μ¬μ κΈ°λ°μΌλ‘ κ°λ°λ μ€νμμ€ κ²μμμ§μ΄λ€. λ°λΌμ μ μΈκ³μμ μλ§μ μ¬λλ€μ΄ μ¬μ©νκ³ μμΌλ©°, λ²κ·Έκ° λ°μν κ²½μ° λλΆλΆ λΉ λ₯΄κ² ν΄κ²°λλ€.
PostgreSQL, MongoDBκ°μ λλΆλΆμ λ°μ΄ν°λ² μ΄μ€λ κΈ°λ³Έ 쿼리 λ° μμΈ κ΅¬μ‘°μ νκ³λ‘ μΈν΄ κΈ°λ³Έμ μΈ ν
μ€νΈ κ²μ κΈ°λ₯λ§ μ 곡νλ€.
νμ§λ§ μλΌμ€ν±μμΉλ μ’ λ κ³ μ°¨μμ μΈ μ λ¬Έκ²μ(Full Text)μ΄ κ°λ₯νλ€.
μ λ¬Έκ²μμ΄λ λ΄μ© μ 체λ₯Ό μμΈν΄μ νΉμ λ¨μ΄κ° ν¬ν¨λ λ¬Έμλ₯Ό κ²μνλ κ²μ λ§νλ€. κΈ°μ‘΄ κ΄κ³νλ°μ΄ν°λ² μ΄μ€λ μ λ¬Έκ²μμ μ ν©νμ§ μμ§λ§
μλΌμ€ν±μμΉλ λ€μν κΈ°λ₯λ³, μΈμ΄λ³ νλ¬κ·ΈμΈμ μ‘°ν©ν΄ λΉ λ₯΄κ² κ²μν μ μλ€.
λΉμ ν λ‘κ·Έ λ°μ΄ν°λ₯Ό μμ§νκ³ νκ³³μ λͺ¨μ ν΅κ³ λΆμμ ν μ μλ€.
μλΌμ€ν±μμΉμ ν€λ°λλ₯Ό μ°κ²°νλ©΄ μ€μκ°μΌλ‘ μμ΄λ λ‘κ·Έλ₯Ό μκ°ννκ³ λΆμν μ μλ€.
λ°μ΄ν°λ² μ΄μ€λ μ€ν€λ§λΌλ ꡬ쑰μ λ°λΌ λ°μ΄ν°λ₯Ό μ ν©ν ννλ‘ λ³κ²½ν΄μ μ μ₯νκ³ κ΄λ¦¬νλ€. λ°λ©΄ μλΌμ€ν±μμΉλ μ ννλμ§ μμ λ€μν ννμ λ¬Έμλ μλμΌλ‘ μμΈνκ³ κ²μν μ μλ€.
μλΌμ€ν±μμΉλ HTTP κΈ°λ°μ RESTful APIλ₯Ό μ§μνκ³ μμ²λΏ μλλΌ μλ΅μλ JSON νμμ μ¬μ©ν΄ μμ€ν μ κ΄κ³μμ΄ μ΄κΈ°μ’ νλ«νΌμμλ μ΄μ© κ°λ₯νλ€.
μλ‘ μμ΄ν μΈλ±μ€μΌμ§λΌλ κ²μν νλλͺ
λ§ κ°μΌλ©΄ μ¬λ¬κ°μ μΈλ±μ€λ₯Ό νλ²μ μ‘°νν μ μλ€.
μ΄λ₯Ό μ΄μ©ν΄ λ©ν°ν
λμ κΈ°λ₯μ μ 곡ν μ μλ€.
λ©ν°ν λμ
νλμ μννΈμ¨μ΄λ μΈμ€ν΄μ€κ° μ¬λ¬ μ¬μ©μ νΉμ μ¬μ©μ κ·Έλ£Ήμ μν΄ μλνλ μν€ν μ²λΌκ³ νλ€.
μ°Έκ³ : https://sdesigner.tistory.com/119
μ¬λ¬ κ³μΈ΅μ λ°μ΄ν°λ₯Ό JSON νμμ ꡬ쑰νλ λ¬Έμλ‘ μΈλ±μ€μ μ μ₯ κ°λ₯νλ€. κ³μΈ΅ κ΅¬μ‘°λ‘ λ¬Έμλ νλ²μ μΏΌλ¦¬λ‘ μ½κ² μ‘°ν κ°λ₯νλ€.
MongoDB, μΉ΄μ°λλΌ κ°μ μΌλ°μ μΈ NoSQLμ μμμΈμ μ§μνμ§ μλλ€.
λΆμ° μμ€ν
ꡬμ±μΌλ‘ λ³λ ¬μ μΈ μ²λ¦¬κ° κ°λ₯νλ€. λΆμ° νκ²½μμλ λ°μ΄ν°κ° μ€λ(Shard) λ¨μλ‘ λλμ΄ μ 곡λλ€.
μΈλ±μ€ μμ±μλ§λ€ μ€λμ μ μ‘°μ μ΄ κ°λ₯νλ€. λ°μ΄ν°μ μ’
λ₯μ μ±κ²©μ λ°λΌ λ°μ΄ν°λ₯Ό λΆμ°νμ¬ λΉ λ₯΄κ² μ²λ¦¬ κ°λ₯νλ€.
μμΈλ λ°μ΄ν°λ 1μ΄ λ€μλ κ²μμ΄ κ°λ₯νλ€. μλνλ©΄ μμΈλ λ°μ΄ν°κ° λ΄λΆμ μΌλ‘ 컀λ°(Commit)κ³Ό νλ¬μ(Flush)μ κ°μ κ³Όμ μ κ±°μΉκΈ° λλ¬Έμ΄λ€.
κ·Έλμ μλΌμ€ν±μμΉ κ³΅μ ννμ΄μ§μμλ NRT(Near Real Time)λΌλ ννμ μ΄λ€.
elasticsearch NRT, refresh
μ°Έκ³ : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=parkjy76&logNo=221062928230
λΆμ° μμ€ν
ꡬμ±μ νΉμ§ λλ¬Έμ, μμ€ν
μ μΌλ‘ λΉμ© μλͺ¨κ° ν° λ‘€λ°±, νΈλμμ
μ μ§μνμ§ μλλ€. κ·Έλμ λ°μ΄ν° κ΄λ¦¬μ μ μν΄μΌ νλ€.
=> λ³΄ν΅ μ μ μ¬μ©νλ μΈλ±μ€λ₯Ό λ°±μ
μ©μΌλ‘ μ μ₯νκ³ μλλ€.
μλΌμ€ν±μμΉμλ λ¬Όλ‘ μ
λ°μ΄νΈ λͺ
λ Ήμ΄ μμ΅λλ€λ§, μ€μ λ‘λ λ°μ΄ν°λ₯Ό μμ νλ€κ° λ€μ λ§λλ κ³Όμ μΌλ‘ μ
λ°μ΄νΈλλ€.
μ΄λ¬ν νΉμ±μ λμ€μ λΆλ³μ±(Immutable)μ΄λΌλ μ΄μ μ μ 곡νκΈ°λ νλ€.
ν΄λ¬μ€ν°λ Elasticsearchμμ κ°μ₯ ν° λ¨μμ΄λ€. νλ μ΄μμ λ
Έλλ‘ μ΄λ£¨μ΄μ§ λ
Έλλ€μ μ§ν©μ΄λ€.
ν΄λ¬μ€ν°λ λ
립μ μΌλ‘ μλ‘ λ€λ₯Έ ν΄λ¬μ€ν°μ μ κ·Όμ ν μ μλ ꡬ쑰μ΄λ€.
μ¬λ¬ λμ μλ²κ° νλμ ν΄λ¬μ€ν°λ₯Ό ꡬμ±ν μ μκ³ , ν μλ²μ μ¬λ¬κ°μ ν΄λ¬μ€ν°κ° μ‘΄μ¬ν μ μμ΄ μ¬μ©μκ° νκ²½μ λ§κ² μ€μ ν μ μλ€.
λ
Έλλ ν΄λ¬μ€ν°λ₯Ό μ΄λ£¨λ μμμ΄λ€.
λ
Έλλ μλΌμ€ν±μμΉλ₯Ό κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μλ λ€λ₯΄κ² λ§λ€μ΄μ€λ€.
κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ νλμ μλ²μμ μμ§μ μΌλ‘ λ°μ΄ν°κ° 컀μ§λ λ°λ©΄, μ¬λ¬κ°μ λ
Έλλ‘ κ΅¬μ±λ μλΌμ€ν±μμΉ μλ²λ μ΄λμ λ μνμ μΌλ‘ λ°μ΄ν°κ° μ»€μ§ μ μλ€.
μ΄λ κ² μνμ μΌλ‘ λ°μ΄ν°κ° 컀μ§λ νΉμ±μ μλΌμ€ν±μμΉκ° λμ©λ λ°μ΄ν° μ²λ¦¬λ₯Ό ν μ μκ² ν΄μ€λ€.
λ Έλμ μ’ λ₯λ μ¬λ¬κ°μ§κ° μλ€.
-
λ§μ€ν° λ Έλ (Master Node)
ν΄λ¬μ€ν° λ΄μμ λμνλ λ Έλλ€μ κ΄λ¦¬, μ€λ μμΉ μ 보 λ±μ ν¬ν¨ -
λ°μ΄ν° λ Έλ (Data Node)
μ€μ λ°μ΄ν°κ° μ μ₯λλ λ Έλ CRUD, κ²μ, μ§κ³ μ°μ°λ±μ΄ μ§νλκΈ° λλ¬Έμ μμμ λ§μ΄μ¬μ©νλ€.
-
μ½λλ€μ΄ν λ Έλ (Coordinating Node)
κ²μμ λ°μ΄ν° λ Έλμμλ searchλ§ νκ³ Aggregation μμ μ μ½λλ€μ΄ν λ Έλμμ νλ€.
-
μΈμ μ€νΈ λ Έλ (Ingest Node)
λ€μ΄μ€λ λ°μ΄ν°λ₯Ό μ μ²λ¦¬λ₯Ό ν΅ν΄ μνλ λ°©μμΌλ‘ λ³ννλ λ Έλ, λ°μ΄ν°κ° λ§λ€λ©΄ μ±λ₯ν₯μμ λμ
λ Έλ μ€μ λ° μ΄ν΄
μ°Έκ³ : https://esbook.kimjmin.net/03-cluster/3.3-master-and-data-nodes
λ°μ΄ν° μ μ₯ 곡κ°
νλμ 물리λ
Έλμ μ¬λ¬κ° λ
Όλ¦¬ μΈλ±μ€ μμ±
νλμ μΈλ±μ€κ° μ¬λ¬ λ
Έλμ λΆμ° μ μ₯
μΈλ±μ€ λ΄λΆμλ μμΈλ λ°μ΄ν°λ€μ΄ μλ€. μ΄ μμΈλ λ°μ΄ν°λ€μ νλμ λμΉλ‘ μ‘΄μ¬νλ κ²μ΄ μλλΌ,
물리μ 곡κ°μ μ¬λ¬κ°μ λΆλΆλ€λ‘ μ‘΄μ¬νλ€. μ΄ λΆλΆλ€μ μ€λλΌκ³ νλ€.
νλΌμ΄λ¨Έλ¦¬ μ€λμ λ ν리카 μ€λλ‘ κ΅¬λΆλλλ°, νλΌμ΄λ¨Έλ¦¬ μ€λλ λ§ κ·Έλλ‘ λ°μ΄ν°μ μλ³Έκ³Ό κ°μ΄ 보면λκ³ , λ ν리카 μ€λλ νλΌμ΄λ¨Έλ¦¬ μ€λμ 볡μ λ³ΈμΌλ‘ 보면λλ€.
2κ° λ Έλ, 4κ° νλΌμ΄λ¨Έλ¦¬ μ€λ, 1κ° Replica μ€λ
μΈλ±μ€ νλ λΉ νλμ νμ
μ κ°κ²λ μ§κΈ, νμ
μ νμ¬ μ»€λ€λ μλ―Έκ° μλ€.
μλΌμ€ν±μμΉ 7.0μμλ νμ
μ μμ ν μ¬λΌμ‘λ€.
λ¬Έμλ μλΌμ€ν± λ°μ΄ν°μ μ΅μ λ¨μμ΄λ©°, JSON Object νλμ΄λ€.
κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μμ ν
μ΄λΈμ νμ ν΄λΉνλ€.
λ¬Έμμ λ€μ΄κ°λ λ°μ΄ν°μ νμ
μ μ μνλ€.
κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ μ΄κ³Ό λΉμ·νμ§λ§ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ μ΄μ μ’ λ μ μ μΈ λ°λ©΄
μλΌμ€ν±μμΉμ νλλ μ‘°κΈ λ λμ μ΄λ€.
λ§€νμ λ¬Έμμ λ°μ΄ν°λ₯Ό κ°μ§κ³ μλ νλκ° μ΄λ»κ² μ μ₯λκ³ μμΈλ μ§μ λν νλ‘μΈμ€μ΄λ€. νλμ νλμ μμ±μ μ μνκ³ μμΈ λ°©λ²μ μ μνλ€. λ§€νμ 보μ μ¬λ¬κ°μ§ λ°μ΄ν° νμ μ§μ μ΄ κ°λ₯νμ§λ§, νλλͺ μ체λ μ€λ³΅μ΄ λΆκ°λ₯νλ€.
λνμ μΌλ‘ 4κ°μ§ APIκ° μ‘΄μ¬νλ€.
- μΈλ±μ€ κ΄λ¦¬ API (Indices API)
- λ¬Έμ κ΄λ¦¬ API (Document API)
- κ²μ API (Search API)
- μ§κ³ API (Aggregation API)
λͺ¨λ APIλ HTTP ν΅μ μ μ΄μ©νμ¬ RESTfulνκ² μ¬μ©κ°λ₯νλ€.
μΈλ±μ€ μμ±
μΈλ±μ€λ₯Ό μμ±ν λλ λ§€ν(Mapping)μ μ΄μ©νμ¬ λ¬Έμμ ν¬ν¨λ νλ λ° νλ νμ λ±μ μ€μ κ°λ₯νλ€.
λ¨, μ£Όμ ν μ μ μΌλ¨ λ§€νμ λ³΄κ° νλ² μμ±λλ©΄, λ³κ²½μ΄ λΆκ°λ₯νλ€λ μ μ΄λ€. μλͺ» μμ±νκ±°λ λ³κ²½ν΄μΌ ν κ²½μ°μλ λ°μ΄ν°λ₯Ό μμ νκ³ μ¬μμΈ κ³Όμ μ κ±°μ³μΌ νλ€.
μΈλ±μ€ μμ±μ μλμ κ°μ΄ PUT λ©μλλ₯Ό μ΄μ©νλ€.
μΈλ±μ€ μμ
μΈλ±μ€ μμ λ DELETE λ©μλλ₯Ό μ΄μ©νκ³ μ·¨μκ° λΆκ°λ₯νλ€.
λ¬Έμ μμ±
POST λ©μλλ₯Ό μ΄μ©νκ³ , /μΈλ±μ€μ΄λ¦/_doc/λ¬Έμid μμΌλ‘ μ
λ ₯νλ©΄ λλ€.
λ€μ λ¬Έμid λΆλΆμ μ
λ ₯νμ§ μμ κ²½μ°μλ 무μμ κ°μ΄ λ€μ΄κ°λ€.
λ¬Έμ μ‘°ν
λ¬Έμ μ‘°νλ GET λ©μλλ₯Ό μ΄μ©νκ³ λ¬Έμ μμ± νμκ³Ό λμΌνλ€.
λ¬Έμ μμ
λ¬Έμ μμ λ DELETE λ©μλλ₯Ό μ΄μ©νκ³ λ¬Έμ μμ± νμκ³Ό λμΌνλ€.
κ²μ APIμ μλμλ λ κ°μ§ λ°©μμ΄ μ‘΄μ¬νλ€.
- URI ννμ λ°©μ
- RESTful API λ°©μμΈ QueryDSLμ μ¬μ©νμ¬ Request Bodyμ λ΄μ©μ μΆκ°νμ¬ κ²μνλ λ°©μ
μΌλ°μ μΌλ‘ 2λ² λ°©μμ λ λ§μ΄ μ¬μ©νλλ°, λμ μμ΄μ μ¬μ©ν μλ μλ€.
QueryDSL
μ°Έκ³ : https://victorydntmd.tistory.com/314
λ°μ΄ν° μ§κ³ νμ
- λ²ν· μ§κ³ (Bucket Aggregation)
- λ¬Έμμ νλ κΈ°μ€μΌλ‘ λ²ν·μ μ§κ³νλ€.
- λ§€νΈλ¦ μ§κ³ (Metric Aggregation)
- λ¬Έμμμ μΆμΆλ κ°μ μ΄μ©νμ¬ ν©κ³, μ΅λκ°, μ΅μκ°, νκ· κ° λ±μ κ³μ°νλ€.
- λ§€νΈλ¦μ€ μ§κ³ (Metrix Aggregation)
- νλ ¬ κ°μ ν©νκ±°λ κ³±νλ€.
- νμ΄νλΌμΈ μ§κ³ (Pipeline Aggregation)
- μΌλ°μ νμ΄ν λΌμΈμ κ°λ μΌλ‘ μ§κ³μ μν΄ μμ±λ μ§κ³ κ²°κ³Όλ₯Ό μ΄μ©ν΄ λ λ€μ μ§κ³νλ€.
λ΄μ©μ΄ λ§κ³ μ΄λ €μ μμΈν λ΄μ©μ λ€λ£¨μ§ μκ² μ΅λλ€.
μ°Έκ³ : https://coding-start.tistory.com/289
μλΌμ€ν±μμΉ μ€λ¬΄κ°μ΄λ
μλΌμ€ν±μμΉ μμ보기1
μλΌμ€ν±μμΉ μμ보기2
μλΌμ€ν±μμΉ μμ보기3
μλΌμ€ν±μμΉ μμ보기4
https://velog.io/@dhjung/2.-Elasticsearch-%EA%B5%AC%EC%A1%B0








