π λμμ΄ μ²λ¦¬ (synonym filter)
μ΄ λ¬Έμλ Elasticsearchμμ λμμ΄(synonym) λ₯Ό μ²λ¦¬νμ¬
λ€μν ννμ νλμ μλ―Έλ‘ κ²μν μ μλλ‘ νλ μ λ΅μ μ€λͺ ν©λλ€.
β 1. λμμ΄ νν°λ?
μ¬μ©μκ° “κ²μ"μ΄λΌκ³ μ
λ ₯νμ λ
“μμΉ”, “μ°ΎκΈ°”, “κ²μ” λ± μ¬λ¬ ννμ λμμ κ²μν μ μλλ‘ λ§λλ ν
μ€νΈ νμ₯ νν°μ
λλ€.
π 2. λμμ΄ μ²λ¦¬ μμ
μ λ ₯μ΄ | νμ₯λ κ²μμ΄ |
---|---|
κ²μ | κ²μ, μμΉ, μ°ΎκΈ° |
μλμ°¨ | μ°¨λ, μΉ΄, μ€ν λͺ¨λ°μΌ |
βοΈ 3. analyzerμ λμμ΄ filter μ€μ (inline λ°©μ)
{
"settings": {
"analysis": {
"filter": {
"synonym_filter": {
"type": "synonym",
"synonyms": [
"κ²μ, μμΉ, μ°ΎκΈ°",
"μλμ°¨, μ°¨λ, μ€ν λͺ¨λ°μΌ"
]
}
},
"analyzer": {
"synonym_analyzer": {
"tokenizer": "standard",
"filter": ["lowercase", "synonym_filter"]
}
}
}
},
"mappings": {
"properties": {
"title": {
"type": "text",
"analyzer": "synonym_analyzer"
}
}
}
}
π 4. νμΌ κΈ°λ° λμμ΄ μ²λ¦¬
λμ©λ λμμ΄ μ¬μ μ νμΌλ‘ κ΄λ¦¬ν μ μμ΅λλ€.
μ: config/synonyms.txt
κ²μ, μμΉ, μ°ΎκΈ°
μλμ°¨, μ°¨λ, μ€ν λͺ¨λ°μΌ
μ€μ :
"synonym_filter": {
"type": "synonym",
"synonyms_path": "synonyms.txt"
}
β οΈ νμΌμ μμ ν κ²½μ°, μλΌμ€ν± λ Έλ μ¬μμ λλ μ¬μΈλ±μ± νμ
π 5. κ²μ 쿼리 μμ
{
"query": {
"match": {
"title": "μ°ΎκΈ°"
}
}
}
μ°ΎκΈ°
λ‘ κ²μν΄λκ²μ
,μμΉ
κ° ν¬ν¨λ λ¬Έμλ κ²μλ¨
β μμ½
νλͺ© | μ€λͺ |
---|---|
λμμ΄ μ²λ¦¬ | λ€μν ννμ νλλ‘ νμ₯νμ¬ κ²μ μ»€λ² κ°ν |
λ°©μ | inline λ°©μ / νμΌ λ°©μ |
μμΉ | analyzer λ΄ filter λ‘ μ§μ |
μ¬μ© μ μ£Όμ | νμΌ κΈ°λ°μ μ¬μμ λλ μ¬μΈλ±μ± νμ |