match vs terms

๊ฐœ๋ฐœ์ƒˆ๋ฐœยท2021๋…„ 11์›” 13์ผ
0

elasticsearch

๋ชฉ๋ก ๋ณด๊ธฐ
6/54

๐Ÿ’ฌ ElasticSearch ๋ฅผ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋˜๋‹ˆ๊นŒ ๋„˜์–ด๊ฐ€์ž ๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ํ–ˆ๋Š”๋ฐ, ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜์ •ํ•ด์•ผํ•  ์ผ์ด ์ƒ๊ฒผ๋‹ค. ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰์ฟผ๋ฆฌ๋ฅผ ์‚ดํŽด๋ณด๋‹ˆ ๋ชจ๋“  ํ•„๋“œ๋ฅผ terms๋กœ๋งŒ ๊ฒ€์ƒ‰์ด ๋˜๊ณ  ์žˆ์—ˆ๋‹ค. ์‚ฌ์‹ค ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ terms ์‚ฌ์šฉ๋ณด๋‹ค๋Š” ๊ฒ€์ƒ‰ํ• ๋•Œ๋งˆ๋‹ค ์ข€ ์ด์ƒํ•˜๊ฒŒ ๊ฒ€์ƒ‰๋œ๋‹ค๋ผ๊ณ  ์ƒ๊ฐ์€ ํ–ˆ๋Š”๋ฐ, ..ใ…‹ใ…‹ ๊ทธ๋ƒฅ ๋„˜์–ด๊ฐ„ ๋ถ€๋ถ„์ด ๋งŽ๋‹ค.. ๋‚ด ์ž˜๋ชป์ž„ ใ… ใ…  ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ์ด๋ฒˆ์— ์™œ terms๊ฐ€ ์•„๋‹Œ match๋กœ ๋ฐ”๊ฟ”์•ผ๋˜๋Š” ๋ฏธ์…˜์ด ์™”๋‹ค. ..ใ…Žใ…Ž ๊ทผ๋ฐ ๋„ˆ๋ฌด ์˜ค๋ž˜์ „์— ์ฟผ๋ฆฌ ์ •์˜๋ฅผ ๋ด์„œ terms๋ž‘ match ์ฟผ๋ฆฌ ๊ฐœ๋…๋„ ๊ธฐ์–ต์ด ์•ˆ๋‚ฌ๋‹ค.. ๊ทธ๋ž˜์„œ ์ •์˜ํ•ด๋ณธ terms๊ณผ match ์˜ ์ฐจ์ด์ ์ด๋‹ค.

Terms

2๊ฐœ ์ด์ƒ์˜ term์„ ๊ฐ™์ด ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•œ ์ฟผ๋ฆฌ์ด๋‹ค. ํ•„๋“œ์˜ ๊ฐ’์€ ํ•ญ์ƒ ๋ฐฐ์—ด๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค. ๊ฐ ๋ฐฐ์—ด๊ฐ’์€ or๋กœ ๊ฒ€์ƒ‰๋œ๋‹ค. term์€ ํ˜•ํƒœ์†Œ๋กœ ๋‚˜๋ˆ„์–ด์ง€๊ณ  ์ €์žฅ๋˜๋Š” ํ† ํฐ์„ ๋งํ•œ๋‹ค. term query๋Š” ์ฃผ์–ด์ง„ ์งˆ์˜๋ฌธ๊ณผ ์ €์žฅ๋œ ํ† ํฐ์ด ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ์„ ์ฐพ์•„์ค€๋‹ค. ๋ชจ๋“  ๋Œ€๋ฌธ์ž๋Š” ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ˜•๋˜๋ฉฐ ์ค‘๋ณต๋œ ๋‹จ์–ด๋Š” ์‚ญ์ œ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.

QUERY

{
  "query": {
    "terms": {
       "url": ["์•ˆ๋‹ค๋ฅด", "ํŒจ์…˜"],
    }
  }
}

Tip) minium_should_match = ๋ช‡ ๊ฐœ ์ด์ƒ์˜ term๊ณผ ์ผ์น˜ํ•ด์•ผ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์— ์‹œํ‚ฌ์ง€ ์„ค์ •

RESULT

{
		"url" : "๋ธ”๋ฃจ ํŒจ์…˜"
},
{
		"url" : "์•ˆ๋‹ค๋ฅด ์ปฌ๋ ‰์…˜"
}

*query์— "์•ˆ๋‹ค๋ฅดํŒจ์…˜"์ด๋ผ๊ณ ๋งŒ ๊ฒ€์ƒ‰ํ–ˆ๋‹ค๋ฉด ๋‘ ๊ฒฐ๊ณผ ๋ชจ๋‘ ๋‚˜์˜ค์ง€ ์•Š์Œ.

Match

match๋„ย termย ์ฟผ๋ฆฌ์™€ย ๋งˆ์ฐฌ๊ฐ€์ง€๋กœย ์งˆ์˜๋ฌธ์„ย ์ธ๋ฑ์‹ฑ๋œย ํ† ํฐ๊ณผย ๋น„๊ตํ•ด์„œย ์ผ์น˜ํ•˜๋Š”ย ๋„ํ๋จผํŠธ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์ค€๋‹ค.ย ํ•˜์ง€๋งŒย termย query์™€ย ๋‹ค๋ฅด๊ฒŒย ์ฃผ์–ด์ง„ย ์งˆ์˜๋ฌธย ๋˜ํ•œย ํ˜•ํƒœ์†Œย ๋ถ„์„์„ย ๊ฑฐ์นœย ๋’ค์— ๋ถ„์„๋œย ์งˆ์˜๋ฌธ์œผ๋กœย ๊ฒ€์ƒ‰์„ย ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœย match์—ย ๋“ค์–ด๊ฐ€๋Š”ย ๋ฐ์ดํ„ฐ๋“ค์€ย or๋กœ ๊ฒ€์ƒ‰๋œ๋‹ค.

QUERY

{
  "query": {
    "match": {
       "url": "์•ˆ๋‹ค๋ฅดํŒจ์…˜",
    }
  }
}

Tip) "operator" : "and"ย  = or ๊ฒ€์ƒ‰์„ and ๊ฒ€์ƒ‰์œผ๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ์„๋•Œ ์„ค์ •

RESULT

{
		"url" : "๋ธ”๋ฃจ ํŒจ์…˜"
},
{
		"url" : "์•ˆ๋‹ค๋ฅด ์ปฌ๋ ‰์…˜"
},
{
		"url" : "์•ˆ๋‹ค๋ฅดํด๋ผ์Šค"
},
{
		"url" : "ํŒจ์…˜์˜์ •์„"
},
{
		"url" : "์•ˆ๋‹ค๋ฅดํŒจ์…˜ ์ด๋ž€"
},
{
		"url" : "์•ˆ๋‹ค๋ฅดํŒจ์…˜"
}

*ํ˜•ํƒœ์†Œ ๋ถ„์„์„ ์œ„ํ•œ ํ•œ๊ธ€ ํ”Œ๋กœ๊ทธ์ธ์„ ๋‹ค์šด๋ฐ›์ง€ ์•Š์œผ๋ฉด ํ•œ๊ธ€์€ ๋„์–ด์“ฐ๊ธฐ, ํŠน์ˆ˜ ๋ฌธ์ž ๋‹จ์œ„๋กœ ํ† ํฐ์ด ๋‚˜๋ˆ ์ง„๋‹ค. ํ•œ๊ธ€ ํ”Œ๋กœ๊ทธ์ธ์ด ์—†๋‹ค๋ฉด "์•ˆ๋‹ค๋ฅดํŒจ์…˜ ์ด๋ž€", "์•ˆ๋‹ค๋ฅดํŒจ์…˜" ๋งŒ ๊ฒฐ๊ณผ๋กœ ๋‚˜์™”์„ ๊ฒƒ์ด๋‹ค.

profile
๋ฐœ์ƒˆ๋ฐœ๊ฐœ

0๊ฐœ์˜ ๋Œ“๊ธ€