πToday I Learned
ElasticSearch
맀ν, Mapping
- *** ν λ² λ§λ€μ΄μ§ 맀νμ μμ μ΄ λΆκ°λ₯νλ€.
- νλλͺ
μ μ€λ³΅λ μ μλ€.
- νΉμλΌλ 맀νμ 보λ₯Ό μμ ν΄μΌ νλ€? > μΈλ±μ€ μμ > μΈλ±μ€ μμ±
PUT <μΈλ±μ€λͺ
>
{
"mappings": {
"properties": {
"<νλλͺ
>": {
"type": "<νλ νμ
>",
<μΆκ°μ€μ >
}
}
}
}
μλΌμ€ν±μμΉ μλ£ν
λ¬Έμμ΄
- string> νκΈ°
- text, keyword
text
- λ¬Έμμ΄ μλ£ν
- μ
λ ₯λ λ°μ΄ν°λ₯Ό ν
λ¨μλ‘ μͺΌκ°μ μ μμΈ κ΅¬μ‘°λ₯Ό λ§λ€κ² λλ€.
- ν ν
μ€νΈ κ²μμ ν λμμ text μλ£νμΌλ‘ μ μΈνλ€.(***)
- κ²μμ©
- ex) "λ°°κ³ ν κ°μμ§" > "λ°°κ³ ν", "κ°μμ§"
keyword
- λ¬Έμμ΄ μλ£ν
- μ
λ ₯λ λ°μ΄ν°λ₯Ό μͺΌκ°μ§ μκ³ , ν΅μ§Έλ‘ νλμ ν ν°μΌλ‘ μ μ₯νλ€.
- κ·Έλ£Ή μ§κΈ° μ© > ν΅κ³μ©
- ex) "λ°°κ³ ν κ°μμ§ > "λ°°κ³ ν κ°μμ§"
μ«μ
- long
- integer
- short
- byte
- double
- float(32bit)
- half_float(16bit)
- μ¬λμ°ΎκΈ° -> μ΄λ¦ -> λΆλΆκ²μ μν¨ -> keywordλ‘ μμ
νκΈ°
- μλ£νμ λ€λ₯΄κ² μ μ₯ν΄λ μ
λ ₯λ mappingμ΄ μλ€λ©΄ κ·Έμ λ§κ² μ μ₯λλ€.
- λ¬Έμμ΄λ‘ μ μ₯λμ΄ λ³΄μΈλ€κ³ νλλΌλ μ
λ ₯λ κ°μ κ·Έλλ‘ λ³΄μ¬μ£Όλ κ²μ΄μ§, μ€μ λ‘λ μλ£νμ΄ μ²λ¦¬κ° μλ£λμλ€.
λ μ§
- date
- ISO8601 νμμΌλ‘ νν
- "2023-12-12"
- "2023-12-12T09:47:46"
- "2023-12-12T09:47:46+09:00"
- μ΄λ€ νμμΌλ‘ μ μ₯μ νλμ§ > λ΄λΆμ μΌλ‘λ 무쑰건 epoch_millis νμμΌλ‘ μ μ₯νλ€.
κ²μ > μ νλ(Relevancy)
- RDBMS > κ²μ > 쑰건μ λ§λ λ°μ΄ν°μΈμ§ μλμ§? κ΅¬λΆ > κ²°κ³Ό λ°ν > μΌλ§λ 쑰건μ μ ννκ² λΆν©λλμ§λ νλ¨ λΆκ°λ₯
- Elasticsearch > κ²μ > κ²μ κ²°κ³Όκ° μ
λ ₯λ 쑰건과 μΌλ§λ μ ννκ² μΌμΉνλμ§ κ³μ°ν΄μ€λ€. (μκ³ λ¦¬μ¦ μ‘΄μ¬)
μ€μ½μ΄, Score
- κ²μλ κ²°κ³Όκ° μΌλ§λ 쑰건μ λΆν©λλμ§λ₯Ό λνλ΄λ μ«μ
- BM25 μκ³ λ¦¬μ¦(Best Matching)
- μ΄ κ³μ°μλ TF, IDF, Field Length 3κ°μ§ μμκ° μ¬μ©λλ€.
- full text κ²μμμ μμ©νλ€.
TF, Term Frequency
- νλμ λνλ¨ΌνΈ λ΄μμ ν
μ΄ μΌλ§λ λ§μ΄ λ°κ²¬λλμ§?
- ex) "μλ°" > κ²μ
- κ²°κ³Ό 2κ°μ λνλ¨ΌνΈ
Β Β Β Β - 1λ² λνλ¨ΌνΈ > "μλ°" λ¨μ΄κ° 5λ²
Β Β Β Β - 2λ² λνλ¨ΌνΈ > "μλ°" λ¨μ΄κ° 10λ²
IDF, Inverse Document Frequency
- ν
μ΄ λ°κ²¬λ λνλ¨ΌνΈμ κ°μκ° μΌλ§λ λ§μμ§?
- ex) "μλΌμ€ν±μμΉ μ€μΉ" > κ²μ
- "μλΌμ€ν±μμΉ" > 10κ° > ν¬μμ±μ΄ λ λλ€ > μ€μλκ° λλ€
- "μ€μΉ" > 1000κ°
Field Length
- κ²μλ λνλ¨ΌνΈμ κΈΈμ΄μ λ°λΌ μ νλ λ°μ
- ex) "μλ°" κ²μ
- 1λ² λνλ¨ΌνΈ > message("μλ° μλ£") > μ€μλκ° λλ€
- 2λ² λνλ¨ΌνΈ > message("μλ
νμΈμ. μ λ νκΈΈλμ
λλ€. μ λ μ¬ν΄ λνμ μ‘Έμ
νꡬμ. λΉμ 곡μμ
λλ€. μ λ μμ
μ νκ³ μΆμ΅λλ€. μ·¨λ―Έλ‘ μλ° κ³΅λΆλ νμ΄μ.")
Geo Point
- μλ, κ²½λλ₯Ό μ μ₯νλ μλ£ν
νν° μ ν
μνλ νλλ§ λ³΄κΈ°
μ°¨νΈ μμ±
-> geo_pointκ° μλλΌ floatλ‘ μ μ₯λμ΄μ μ€λ₯ λ°μ
geo_pointλ‘ μμ ν
https://data.seoul.go.kr/dataList/OA-21232/S/1/datasetView.do;jsessionid=C977BE19B59CA5AF890B5B9D7C77A158.new_portal-svr-11
latκ³Ό lonμ μμ½μ΄