Full Text search
์ฌ๋ฌ๋ถ์ด ๊ฒ์ํ ์๋น์ค๋ฅผ ์ด์ํ๋ค๊ณ ์นฉ์๋ค.
๊ทธ๋์ ํ ์ด๋ธ ํ๋์ ๊ฒ์๋ฌผ์ ๊ธ๋ด์ฉ, ์์ฑ์, ๋ฐํ์ผ์ ์ ์ฅํ๊ธฐ ์์ํ๋๋ฐ
๊ฒ์๊ธฐ๋ฅ์ด ํ์ํด์ง๊ฒ๋๋ค. ๊ฒ์๊ธฐ๋ฅ์ ์ด๋ป๊ฒ ๊ตฌํํ์ฃ ?
LIKE ์ฐ์ฐ์
์์ ์ ๊ฐ๋จํ ๊ฒ์๊ธฐ๋ฅ ๋ง๋ค๊ณ ์ถ์ผ๋ฉด ์ปฌ๋ผ๋ช LIKE %๋จ์ด% ํ๋ฉด ๋๋ค๊ณ ํ์ต๋๋ค.
์งง์ ๋ฌธ์ฅ ์์์ ๊ฒ์ํ๋๊ฑด ์ด๊ฑธ๋ก ์ถฉ๋ถํ์ง๋ง
1. % ๊ธฐํธ๋ฅผ ๋งจ ์์ ์ฐ๋ฉด ์ธ๋ฑ์คํ์ฉ์ ๋ชปํ๊ณ
2. ๋ฌธ์ฅ์ด ์ข ๊ธธ๊ฑฐ๋ ํ์ด ๋๋ฌด ๋ง์์ง๋ฉด LIKE ๋ง์ผ๋ก๋ ๋งค์ฐ ๋๋ฆฌ๊ฒ ๋์ํฉ๋๋ค.
ํ์ง๋ง full text index๋ฅผ ๋ง๋ค์ด๋๋ฉด ๊ฑฑ์ ์์ต๋๋ค.
Full text search๋ฅผ ์ํ index
๊ธด ๊ธ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ปฌ๋ผ ํ๋์ ๋ณด๊ดํ ์ ์์ต๋๋ค.
text ๋ฐ์ดํฐํ์ ์ฐ๋ฉด 6๋ง5์ฒ์๋ฅผ ๋ณด๊ดํ ์ ์์ผ๋๊น์.
์ด๋ ๊ฒ ๊ธด ๊ธ ์์์ ์ํ๋ ๋จ์ด๋ฅผ ๊ฒ์ํ๊ณ ์ถ๋ค๋ฉด ๋น์ฐํ index๋ฅผ ๋ง๋ค์ด๋์ด์ผ ๊ฒ์์ด ๋นจ๋ผ์ง๋๋ค.
๊ทผ๋ฐ ๊ธด ๊ธ์ ๊ทธ๋ฅ index ๋ง๊ณ full text search index๋ฅผ ๋ง๋ค์ด๋๋ฉด ๋ฉ๋๋ค.
๊ถ๊ธํ ๊น๋ด ์ด๋ค ์๋ฆฌ๋ก index๋ฅผ ๋ง๋ค์ด์ฃผ๋์ง ์ค๋ช ํ์๋ฉด
1
I run regularly.
2
I eat breakfast.
3
I like running.
4
I like eating pizza.
5
I swim in the sea.
์ด๋ฐ ํ ์ด๋ธ์ด ์๋ค๊ณ ์นฉ์๋ค.
์ด ํ ์ด๋ธ์ full text index๋ฅผ ๋ง๋ค๋ผ๊ณ ์ํค๋ฉด
๋จ์ด
์ด๋ค ํ์ ๋์ค๋๋ฉด
eat
2, 4
run
1, 3
swim
5
๊ธด ๊ธ์ ์๋ ๋ชจ๋ ๋จ์ด๋ฅผ ๋ฝ์์ ์ ๋ ฌํด์ฃผ๊ณ
๊ทธ ๋จ์ด๊ฐ ์ด๋ค ํ์ ์ถ๋ชฐ์ค์ธ์ง๋ฅผ ์์ ์ ์ด๋ก๋๋ค.
์ด๋ฌ๋ฉด eat ์ด๋ฐ ๋จ์ด๋ฅผ ๊ฒ์ํ์ ๋ ์ด๋ค ํ์ ๋ค์ด์๋์ง ์ฝ๊ฒ ํ์ ๊ฐ๋ฅํ๊ฒ ์ฃ ?
์ด๊ฒ ๋์ ๋๋ค.
๊ทผ๋ฐ ๋ฌธ์ฅ ์์์ stopwords๋ผ๊ณ ๋ถ๋ฅด๋
"is the a are and I" ๋ฑ ๋ด์ฉ๊ณผ ์๊ด์๋ ์ธ๋ฐ์๋ ๋จ์ด๋ค์ ์ ๊ฑฐํ๊ณ index๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๊ทธ๋์ ์น์ ๊ฒ์์์ง๋ค์ด is the a are ์ด๋ฐ ๋ด์ฉ ๋ถ์ฌ์ ๊ฒ์ํ๋ฉด ๋๋ถ๋ถ ๋ฌด์ํ๋ ์ด์ ๊ฐ ๊ทธ๊ฒ๋๋ค.
Full text index ๋ง๋๋ ๋ฒ
CREATE INDEX LIB_IDX_TEXT ON TEST.LIBRARY (์๋ช
)
indextype is ctxsys.context;
Index ์ฑ๋ฅ ํ๊ฐ
1. LIKE ๊ฒ์ ์ ์ฑ๋ฅ


2. CONTAINS ๊ฒ์ ์ ์ฑ๋ฅ


Full text index๋ฅผ ์ด์ฉํด ๊ฒ์ํ๋ ค๋ฉด
WHERE ๋ค์ ์กฐ๊ฑด์ ํํ๋ก CONTAINS(์ปฌ๋ผ๋ช , '%์ฐพ์๋จ์ด%') > 0 ์ด๋ฐ์์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
SELECT *
FROM LIBRARY l
WHERE CONTAINS(์๋ช
, '%๋ถ๋์ฐ%') > 0;
์ด๋ ๊ฒ ์์ฑํด์ ์คํํด๋ด ์๋ค.
๊ทธ๋ผ '๋ถ๋์ฐ' ์ด๋ผ๋ ์ ํํ ๋จ์ด๋ฅผ ๊ฐ์ง ํ์ ๋งค์ฐ ๋น ๋ฅด๊ฒ ํํฐ๋งํด์ค๋๋ค.
์ง์ง ๋น ๋ฅธ์ง ํ์ธํ๋ ค๋ฉด execution plan ๋๋ฌ๋ด ์๋ค.
Oracle Text ๊ด๋ฆฌํ ๋ ์ฃผ์์ฌํญ
- ์ด ์ ๋์ ์ฑ๋ฅ ๋ง๊ณ ๋ค์ด๋ฒ, ๊ตฌ๊ธ, ๋ํ์ผํ๋ชฐ์ฒ๋ผ ๊ฒ์์ฑ๋ฅ์ด ์์ฃผ ์ค์ํ ์ฌ์ดํธ๋ฅผ ๋ง๋ค๊ณ ์๋ค๋ฉด
elastic search๋ผ๋ ์ง ๊ฒ์๋ง์ ์ํ DB ๋๋ ์๋น์ค๋ฅผ ๋ฐ๋ก ์ฌ์ฉํ ์๋ ์๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฑธ ์ฐ๋๊ฒ ๋์ ์ ์์ต๋๋ค.
- ๋ค๋ฅธ DBMS๋ ๋ค๋ฅธ ๋ฌธ๋ฒ์ด๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ ํ์ ์ ๋ฐ๋ก ๊ฒ์ํด๋ด ์๋ค.
(์ฐธ๊ณ )
Oracle Text๋ฅผ์์ ์๋ Intermedia Text ๋ผ๊ณ ๋ถ๋ ธ์์ต๋๋ค.
๋๋ Domain Index ๋ผ๊ณ ๋ถ๋ฅด๋ ์ฌ๋๋ ์๊ณ , Text Index ๋ผ๊ณ ๋ถ๋ฅด๋ ์ฌ๋๋ ์์ต๋๋ค.
๋ชจ๋ ๊ฐ์ ๊ฒ๋๋ค.
Last updated