์ด ๋ฌธ์๋ ์ฌ์ฉ์์ ๊ฒ์ ๋ก๊ทธ(search logs) ๋ฅผ ํ์ฉํ์ฌ
๊ฒ์ ์ ์๋ฅผ ํ๋ํ๊ณ ์ถ์ฒ ๊ธฐ๋ฅ์ ๊ฐํํ๋ ์ ๋ต์ ์ค๋ช
ํฉ๋๋ค.
โ
1. search_logs ์ธ๋ฑ์ค ๊ตฌ์ฑ ์์
{
"mappings": {
"properties": {
"query": { "type": "keyword" },
"clicked_doc_id": { "type": "keyword" },
"timestamp": { "type": "date" },
"user_id": { "type": "keyword" }
}
}
}
- ๊ฐ ๋ก๊ทธ๋ ์ฌ์ฉ์๊ฐ ์ด๋ค ๊ฒ์์ด๋ก ์ด๋ค ๋ฌธ์๋ฅผ ํด๋ฆญํ๋์ง๋ฅผ ๊ธฐ๋ก
clicked_doc_id
๊ธฐ์ค์ผ๋ก ํด๋ฆญ ๋น๋ ์ง๊ณ ๊ฐ๋ฅ
๐ 2. ๊ฒ์์ด โ ํด๋ฆญ๋ฅ ๋ถ์
์์:
๊ฒ์์ด | ๊ฒ์ ํ์ | ํด๋ฆญ ํ์ | ํด๋ฆญ๋ฅ (%) |
---|
์นด์นด์ค | 100 | 40 | 40% |
์ผ์ฑ | 80 | 50 | 62.5% |
- ํด๋ฆญ๋ฅ ์ด ๋์ ๊ฒ์์ด๋ ์ถ์ฒ ๊ฒ์์ด๋ก ํ์ฉ ๊ฐ๋ฅ
- ํน์ ๋ฌธ์๊ฐ ์ด๋ค ๊ฒ์์ด์ ์์ฃผ ํด๋ฆญ๋๋์ง ๋ถ์ํด ์ ์ ๋ฐ์
๐ 3. ์ธ๊ธฐ ํค์๋ ์ถ์ถ
{
"size": 0,
"aggs": {
"popular_queries": {
"terms": {
"field": "query",
"size": 10
}
}
}
}
- ์ต๊ทผ n์ผ ๋์ ๊ฐ์ฅ ๋ง์ด ๊ฒ์๋ ํค์๋ ์ง๊ณ ๊ฐ๋ฅ
โจ 4. ์ถ์ฒ์ด ์์ฑ ์์
์นด
์
๋ ฅ ์ โ [“์นด์นด์ค”, “์นด๋”, “์นด๋ฉ๋ผ”] ์ถ์ฒ- ์ธ๊ธฐ ํค์๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก prefix ๋งค์นญ ์ถ์ฒ์ด ์์ฑ ๊ฐ๋ฅ
๐ ๏ธ 5. ์คํ ๊ต์ (Did You Mean)
{
"suggest": {
"text": "kakaoo",
"spellcheck": {
"term": {
"field": "query"
}
}
}
}
- ์ค์ ๋ก๊ทธ์ ์กด์ฌํ๋ ๋จ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์คํ ๋ณด์ ๊ฐ๋ฅ
did_you_mean
๊ธฐ๋ฅ ๊ตฌํ ๊ฐ๋ฅ
๐ 6. ํด๋ฆญ ์ ๊ธฐ๋ฐ ์ถ์ฒ ์ ์ ๋ฐ์
๋ฐฉ๋ฒ 1: ๊ฒ์ ์ฟผ๋ฆฌ์์ function_score ์ฌ์ฉ
{
"query": {
"function_score": {
"query": {
"match": {
"title": "์นด์นด์ค"
}
},
"field_value_factor": {
"field": "click_count",
"modifier": "log1p",
"missing": 0
},
"boost_mode": "multiply"
}
}
}
- ํด๋ฆญ ํ์๊ฐ ๋์ ๋ฌธ์์ผ์๋ก ๊ฐ์ค์น๊ฐ ์ฌ๋ผ๊ฐ
- ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ง๊ณํด
click_count
ํ๋๋ก ์ธ๋ฑ์ฑํด์ผ ํจ
โ
์์ฝ
์ ๋ต ํญ๋ชฉ | ์ค๋ช
|
---|
search_logs ์ธ๋ฑ์ค | ๊ฒ์์ด, ํด๋ฆญ ๋ฌธ์, ์๊ฐ, ์ฌ์ฉ์ ID ๋ฑ ๊ธฐ๋ก |
ํด๋ฆญ๋ฅ ๊ธฐ๋ฐ ๋ถ์ | ๊ฒ์์ด โ ํด๋ฆญ๋ฅ ๊ณ์ฐ โ ์ธ๊ธฐ ๊ฒ์์ด ์ถ์ถ |
์ถ์ฒ์ด ์์ฑ | ์์ฃผ ๊ฒ์๋ ๊ฒ์์ด ๊ธฐ๋ฐ ์๋์์ฑ ๊ตฌํ ๊ฐ๋ฅ |
์คํ ๊ต์ | ์์ฃผ ๋ฑ์ฅํ ๊ฒ์์ด ๊ธฐ๋ฐ "Did You Mean" ๊ตฌํ ๊ฐ๋ฅ |
์ ์ ๋ฐ์ | function_score ๋ก ํด๋ฆญ ์ ๊ธฐ๋ฐ ๊ฐ์ค์น ๋ถ์ฌ |