ElasticSearch μ search μ Bulk κΈ°λ₯μ μ΄ν ν¬μ€νΈμμ λ€λ£¨κ² μ΅λλ€.
ElasticSearch μμλ REST APIs μμ Document APIs μμ ν΄λΉ λ΄μ©μ λ€λ£¨κ³ μμ΅λλ€.
Index
ElasticSearch μ Index λ νν μλ λ°°μ΄μ μΈλ±μ€μλ λ€λ₯΄κ² λ°μ΄ν°λ² μ΄μ€μ ν
μ΄λΈκ³Ό μ μ¬ν κ°λ
μ κ°μ§κ³ μμ΅λλ€.
κ°μ NoSQL MongoDB μ Collector μ λΉμ·νλ€κ³ μκ°νμλ©΄ νΈν©λλ€.
HTTP νλ‘ν μ½
ElasticSearch λ http νλ‘ν μ½λ‘ μ κ·Όμ μ΄κ° κ°λ₯ν©λλ€.
RESTFul
PUT, POST, GET, DELETE λ©μλλ₯Ό ν΅ν΄ μμμ μ μ΄ν μ μμ΅λλ€.
κΈ°λ³Έμ μΌλ‘ 리λ μ€μ Curl κΈ°λ₯ λλ vscode μ rest client λ±μ κΈ°λ₯κ³Ό κ°μ΄ URLμ μ΄μ©ν΄ μμμ μ κ·Όμ μ΄λ₯Ό ν μλ μμ§λ§ μ°λ¦¬κ° μ λ²μκ°μ μ€μΉν Kibana μ Dev Tool κΈ°λ₯μ ν΅ν΄ Elastic νκ²½μ μ€μ΅ν΄λ³΄λλ‘ νκ² μ΅λλ€.
μ μμ μΌλ‘ Kibana κ° μ€μΉλκ³ μ€νμ΄ λκ³ μλ€λ©΄ http://localhost:5601 μ μ μνλ©΄ Kibana μ΄ν리μΌμ΄μ λ©μΈνλ©΄μ΄ κΈ°λ€λ¦¬κ³ μμ΄μ!!
μ’μΈ‘ μλ¨μ λ©λ΄ λ²νΌμ λλ₯Έν μλμͺ½μ Dev Tools λ‘ λ€μ΄κ°μ€λλ€.
Dev Tools μ½μμμ μ’μΈ‘μμ Curl κ³Ό λΉμ·ν κΈ°λ₯μ μννκ³ μ°μΈ‘μμ κ·Έ κ²°κ³Όλ₯Ό λ³Ό μ μμ΅λλ€.
μΌλ¨ λ°μ΄ν°λ² μ΄μ€μμλ μμμ μ μ₯νκ³ μ¬μ©νκΈ° μν΄μ ν μ΄λΈμ λ§λ€λ―μ΄ ElasticSearch μμλ μ΄μ ν΄λΉνλ Index λ₯Ό μμ±ν΄μ€μΌ ν©λλ€.
Index μμ±μλ PUT λ©μλλ₯Ό μ¬μ©νμ¬ μμ²μ ν΄μΌν©λλ€.
μΌλ°μ μΌλ‘ μμ±μλ POST κ°±μ μλ PUT λ©μλλ₯Ό μ¬μ©νμ§λ§ ElasticSearch μμλ λμ λͺ¨νΈνκ² μ¬μ©ν©λλ€.
mydoc μ΄λΌλ Index λ₯Ό μμ±ν΄λ΄ μλ€.
PUT mydoc
μμ ν μ€νΈλ₯Ό Dev Tools μ½μ μ’μΈ‘μ μ λ ₯ν ν΄λΉ μ€μ μκΈ°λ βΆ μ΄λ κ² μκΈ΄ μΌκ°ν λ²νΌμ λλ₯΄λ©΄ ν΄λΉνλ μμ²μ΄ μ μ‘λ©λλ€.
Dev Tools μμλ http://<νΈμ€νΈ>:<ν¬νΈ>/ κ° μλ΅λμ΄ μμ΅λλ€.
μ¦ μμ μμ²μ μλλλ‘λΌλ©΄ PUT http://localhost:5601/mydoc μ λλ€. Dev tools μμλ μ΄ μ¬νμ΄ λμΌμ μ μ©λ©λλ€.
λ°λ‘ μλ μ΄μ΄μ 첫 λ°μ΄ν°λ₯Ό μμ±ν΄λ΄ μλ€.
POST mydoc/_doc
{
"title" : "first Title",
"contents" : "first contents"
}
μ°μΈ‘μ λ°λ‘
μμ κ°μ νμμ κ²°κ³Ό λ°μ΄ν°κ° 보μΈλ€λ©΄ μ±κ³΅μ λλ€. μ°μΈ‘μλ¨μ 201 status μ½λμ ν΄λΉ μμ²μ μννλλ° κ±Έλ¦° μκ° λν νμκ° λ©λλ€.
μ λ second, third κ° λ€μ΄κ°λ λ°μ΄ν°λ₯Ό λκ° λ λ§λ€μμ΅λλ€.
POST <μΈλ±μ€>/_doc/<μμ΄λ> μ²λΌ μμ΄λλ₯Ό λͺ μνμ§ μμΌλ©΄ μμλ‘ μμ΄λλ₯Ό μμ±νκ² λ©λλ€.
ν΄λΉνλ μμ΄λκ° μ‘΄μ¬ν κ²½μ° μμ±μ΄ μλλΌ κ°±μ μνκ² λλ―λ‘ μ‘°μ¬ν΄μΌ ν©λλ€.
λν PUT λ©μλλ₯Ό ν΅ν΄ PUT <μΈλ±μ€>/_create/<μμ΄λ> μ²λΌ μμ±λ§ κ°λ₯νκ²λ ν μ μμλλ€.
μ΄μ νμΈμ ν΄λ΄ μλ€. ππ
μ’μΈ‘ μλ¨μ λ©λ΄ - νλ¨μ Stack Management λ₯Ό ν΄λ¦ν©λλ€.
μ’μΈ‘ μ€κ°μ¦μ Kibana μΉ΄ν
κ³ λ¦¬ μλ Index Patterns λ₯Ό ν΄λ¦ν©λλ€.
μ°λ¦¬κ° λ³΄λ €λ Index λ₯Ό λͺ
μνκΈ° μν΄ Create Index pattern μ ν΄λ¦ν©λλ€.
Index pattern name μΉΈμ mydoc μ μ λ ₯νκ³ Next Step μ ν΄λ¦ν©λλ€.
μ°λ¦¬κ° λ§λ λ°μ΄ν°μλ μκ° λ°μ΄ν°κ° μκΈ° λλ¬Έμ μ무κ²λ μ ννμ§ μμλ μμ±λ©λλ€.
μκ° λ°μ΄ν°κ° ν κ° μ΄μμ΄λΌλ©΄ μκ°λ³λ‘ λ°μ΄ν°λ₯Ό μΆμ ν μ μμ΅λλ€.
Create Index Pattern μ ν΄λ¦ν©μλ€.
μ΄μ μ’μΈ‘ λ©λ΄λ₯Ό ν΄λ¦ λ©λ΄ μλ¨μ Kibana - Discover νμ μ νν©λλ€.
μ¬κΈ°μ μ°λ¦¬κ° μμμ μ λ ₯νλ Index μ λ°μ΄ν°λ€μ΄ λνλκ² λ©λλ€.
λ°μ΄ν°λ₯Ό μμ±νλ κ²μ μ΄μ λλ¬μ΅λλ€.
Read λ λ§€μ° λ¨μν©λλ€!
GET mydoc/_doc/cdRVaXYBNC5Keng2JJce
μμ κ°μ΄ GET <μΈλ±μ€>/_doc/<μμ΄λ> νμμΌλ‘ μμ²μ νκ² λλ©΄ ν΄λΉνλ λ°μ΄ν°κ°
κ²°κ³Όκ°μΌλ‘ λμ€κ² λ©λλ€.!!
μ°νμ°ν!μ°ν!
μλ£κ° μμΌλ©΄ not foundκ° λ¨κ² λ©λλ€!! μ¬κΈ°κΉμ§ νλλΌ κ³ μλ§μΌμ
¨μ΅λλ€.
μ΄μ μΌλ§ μλ¨μμΌλ μμ°¨μμ°¨! ππππ
full-text-search κΈ°λ₯μΈ ν€μλλ₯Ό ν΅ν΄ μλ£λ₯Ό μ°Ύλ search κΈ°λ₯μ λ€μν¬μ€νΈμμ λ€λ£¨κ² μ΅λλ€.!!
μ΄λ²μλ Update κΈ°λ₯μ μνν΄λ³΄κ² μ΅λλ€.
Update λ PUT λ©μλλ₯Ό μ¬μ©νμ¬ μνν μ μμ΅λλ€.
second Title μλ£μ idλ₯Ό 볡μ¬νμ¬ λ€μκ³Ό κ°μ ννμ μμ²μ λ§λ€μ΄μ€λλ€.
ν΄λΉνλ Id κ° μ‘΄μ¬ν κ²½μ° λ°μ΄ν° μ 체λ₯Ό μ
λ°μ΄νΈνκ² λ©λλ€.
PUT mydoc/_doc/ctRWaXYBNC5Keng2Dpfm
{
"title" : "updated second title",
"contents" : "updated second contents"
}
μ±κ³΅νλ©΄ μλκ³Ό κ°μ΄ result μ updated λΌλ κ²°κ³Όκ°μ΄ νμλ©λλ€.
Kibana μ Discover νμ λ³΄κ² λλ©΄
μ°ν! ν볡νκ΅°μ Update κ° μ±κ³΅λ κ²μ νμΈν μ μμ΅λλ€.!!
λ§μ§λ§μ λλ€.!! μ΄κ²λ§ μλ©΄ CRUD κΈ°λ₯μ λ μ λλ€.
DELETE mydoc/_doc/ctRWaXYBNC5Keng2Dpfm
λ°λ‘ μ€ν!!
μμ κ²°κ³Ό μ°μ°μ μΊ‘μ² νλ κ²μ κΉλΉ‘ν΄μ λ°μ΄ν°λ₯Ό νλ λ λ§λ€κ³ λ€μ μμ ν΄μ μ΄μ κ³Ό μμ΄λκ° λ€λ¦ λλ€. γ γ
μμ κ°μ΄ result μ κ°μΌλ‘ deletedκ° λ¨λ©΄ μ±κ³΅!!!!
μ¬λ¬λΆ λ§λ¨μ΄ μμΌλ©΄ λλ μλλ².
λ§μ§λ§μΌλ‘ Index λμ μμ ν΄λ립μλ€. μκ° ... ππππ
DELETE mydoc
μμ ... μμ²...
μ±κ³΅...
μ΄ν Discover νμ μ΄λ ν μλ£λ μΆμ νμ§ λͺ»νκ²λμμ΅λλ€.. νκ·Ή
μμ° μ»€νΌ νμ νλ©΄μ κ°μ΄ λ°λΌν΄λ³΄μ
¨λμ. μκ°λ³΄λ€ κ°λ¨ν©λλ€.
λ€μμλ Search λκ³Ό ν¨κ» ν΅ν΄ λ€μ μ°Ύμμ€κ² μ΅λλ€.!!