๐ ๊ฒ์ ๊ธฐ๋ฅ์ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด ์์๊น? ํ์ฌ์์ ๊ฒ์ SaaS ๋ฅผ ์ฌ์ฉํ๊ณ ์์ด ์ง์ ๊ฒ์์์ง์ ๊ตฌํํ ๊ธฐํ๋ ์์ง๋ง ๋ค์ํ ๊ฒ์ ๊ธฐ๋ฅ๋ค์ ์ดํดํ ํ์๋ ์์ฃ . ์ด ๊ธ์ ๊ฒ์ ๊ธฐ๋ฅ๋ณ ์ญ์์ธ(
๐ ๊ฒ์ ๊ธฐ๋ฅ์ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด ์์๊น? ํ์ฌ์์ ๊ฒ์ SaaS ๋ฅผ ์ฌ์ฉํ๊ณ ์์ด ์ง์ ๊ฒ์์์ง์ ๊ตฌํํ ๊ธฐํ๋ ์์ง๋ง ๋ค์ํ ๊ฒ์ ๊ธฐ๋ฅ๋ค์ ์ดํดํ ํ์๋ ์์ฃ . ์ด ๊ธ์ ๊ฒ์ ๊ธฐ๋ฅ๋ณ ์ญ์์ธ(inverted index)๊ตฌ์กฐ๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์ฑํ๋์ง ์ค๋ช ํฉ๋๋ค. [์ฉ์ด ์ ๋ฆฌ] ์์ธ(Index): ๋ฌธ์์์ ํค์๋๋ฅผ ์ฐพ์๋ณด๊ธฐ ์ฝ๋๋ก ์ ๋ ฌ/๋์ด๋ ๋ชฉ๋ก. ์ญ์์ธ(inverted Index): ์ฟผ๋ฆฌ๋ฅผ ํตํด ๋ฌธ์๋ฅผ ์ฐพ์๋ด๋ ๋ฐฉ์. ์ฑ ๋ท๋ฉด์ ์๋ ํค์๋์์ ๋ฌธ์ ํ์ด์ง๋ฅผ ์ฐพ๋ ๋ฐฉ์. ๋์ ์ฐจ์ด๋ ๋จ์ด์์ ๋ณผ ์ ์๋ฏ์ด ๋ฐฉํฅ์ฑ์ ๋๋ค. ์ผ๋ฐ์ ์ธ ์์ธ(Froward Index)๋ docID โ ๋ฌธ์๋ฅผ mapping ํ๊ณ ์ญ์์ธ์ ์ฟผ๋ฆฌ(๋ฌธ์๋ด์ฉ) โ docID์ mapping ํ๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ฒ์ํ ๋ ์ญ์์ธ์ด ์์ฃผ ์ ์ฉํ๊ฒ ์ฐ์ด๊ฒ ์ฃ ? [์์ฝ] 1. Numeric search ์ฃผ๋ก ๋ฒ์ ๊ฒ์์ด ์์ ํ ๋ฐ, ํน์ ์ซ์๋ฅผ key๋ก ๋๋ฉด ๋ฌดํ์ ๊ฐ๊น์์ง ์ ์๊ธฐ ๋๋ฌธ์(5, 5.2, 5.9..) bucket ์ ์ง์ ํด [5,6) ๊ฐ์ด ์ผ์ ๋ฒ์ ๋จ์๋ก ๊ตฌ์ฑํฉ๋๋ค. 2. Phrase search ๊ตฌ๋ฌธ์ ๋จ์ด์ ์์ด๋ก ์๊ฐํ ์ ์๋๋ฐ์. ์์(pos)์ ๋ณด๋ฅผ ์ ์ฅํ์ฌ ๊ตฌ๋ฌธ๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด ๋จ์ด ์กฐํฉ์ ์ฐพ์ ์ ์์ต๋๋ค. 3. Preprocessing ์ฟผ๋ฆฌ์ ์ ์ฒ๋ฆฌ๋ฅผ ์ ์ฉํ์ฌ ์ฑ๋ฅ์ ๋์ผ ์ ์์ต๋๋ค. ๊ตฌ๋์ ์ด๋ ์ผํ ๋ฑ์ ์์ค๋ค๋๊ฐ 'a' ์ 'the' ๋ฑ ์ ์ ๊ฑฐํ์ฌ semantic ํ ๊ฒ์ ์ง์คํ ์๋ ์์ต๋๋ค(no-op). ํ ๋จ์ด๊ฐ ์ฌ๋ฌ ํํ(๊ณผ๊ฑฐํ, ๋ฏธ๋ํ..)๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒฝ์ฐ๋ ๋ง๊ธฐ ๋๋ฌธ์ ์ด ๊ฒฝ์ฐ๋ ํ๋์ ๋จ์ด๋ก ์ฒ๋ฆฌ(Stemming)ํ๋ ๊ฒ, ๋จ์ด์ substring์ ์๋ฅผ ์ง์ ํ์ฌ ํด๋น ๋จ์ด๋ก ์ฒ๋ฆฌํ ์ง๋ฅผ ๊ณ ๋ คํ ์ ์์ต๋๋ค.(n-gram) 4. Fuzzy Search ๋์์ด๋ฅผ ๊ณ ๋ คํ ๊ฒ์๊ธฐ๋ฅ ์ ๋๋ค.(hello = hi, bonjour..) ์๋์ผ๋ก๋ ๋ชปํ ๊ฒ ๊ฐ๊ณ ์ฌ๋์ด ์ง์ ๋ฃ์ด์ฃผ์ด์ผ ํ ๊ฒ์ ๋๋ค. ๋ชจ๋ ๋์์ด๋ฅผ ํ๋ฒ์ ๊ณ ๋ คํ์ฌ ๊ตฌ์ฑํ ์๋ ์์ ๊ฒ์ด๊ณ ํ์์ ๋ง๋ค ๋ฃ์ด์ฃผ๋ ๊ฒ๋ ๊ฐ๋ฅํ๊ฒ ์ฃ . index size๊ฐ ๋์ด๋๋ ๊ฒ์ ์ด์ฉ ์ ์๊ฒ ๋ค์. 5. Snippet ๋จ์ํ ๋ฌธ์ ๊ฒ์๋ง๊ณ ์ฟผ๋ฆฌ๊ฐ ๋ฌธ์์ ์ด๋ค ๋ถ๋ถ์ ์๋์ง ์ ํํ ์๊ณ ์ถ์ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ํ์ด๋ผ์ดํธํ๋ฉฐ ๋ณด์ฌ์ฃผ๋ ๊ฒฝ์ฐ๊ฐ ์๊ฒ ๋ค์. snippet ์ ๋ฌธ์๋ณ offset์ ์ถ๊ฐํ์ฌ ์ฃผ๋ณ ํ ์คํธ์ ๋ฒ์๋ฅผ ๋น ๋ฅด๊ฒ ์ ๊ณตํฉ๋๋ค. 6. Per Field Search ๋ฌธ์ ๋ด์ฉ ์ ์ฒด๋ฅผ ํ๋์ ํ๋๋ก ๊ตฌ์ฑํ์ฌ ๊ฒ์ํ ์ ์์ง๋ง, ๊ฐ ํ๋ ๋ณ ๊ฒ์์ ์ ๊ณต ํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ ๋ฆฝ๋ ์ญ์์ธ์ ๊ตฌ์ฑํฉ๋๋ค. ์ฉ๋๊ณผ ์ฑ๋ฅ์ ๊ณ ๋ คํ์ฌ ๊ฒ์์ ์ฌ์ฉํ ํ๋๋ง ๊ตฌ์ฑํ๋ ๊ฒ์ด ํ์ํฉ๋๋ค. 7. Scoring and Ranking ์ฟผ๋ฆฌ์ ๋งค์นญ๋ ์ฌ๋ฌ ๋ฌธ์ ์ค ์ฌ์ฉ์์๊ฒ ๊ฐ์ฅ ์ ํฉํ ๊ฒ์ ์ ๋ณํ์ฌ ๋งจ ์์ ๋ณด์ฌ ์ค ํ์๊ฐ ์์ต๋๋ค. ์ด๋ค ๊ฒ์ด ์ ํฉํ ์ง๋ ๊ฐ ์ ์ ์ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ฃ . ๊ธฐ๋ณธ์ ์ผ๋ก good default ranking ์์ ์ฌ์ฉ์์ ๊ฒ์ ๊ฒฝํ์ ๋ฐ์ํ์ฌ(user case specific ranking) ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํฉ๋๋ค. good default ranking ์ผ๋ก๋ ์ต์ ์, ๊ฒ์ํ ์๊ฐ, ํ๋๋ณ ์ค์๋ ๋ฑ์ด ์์ต๋๋ค. 8. Faceting ์ด๋ค ํ๋์ scope์ ์ง์ ํ ์ํ์์ ๊ฒ์์ ์ํ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ๋ํ์ ์ธ ๊ฒ์ผ๋ก ๋ถ๋์ฐ ์ดํ์์ ์ฌ๋ฌ ์กฐ๊ฑด ๋ด์์ ๊ฒ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ฒ ๋ค์.