[Qdrant] Collection
Collection์ qdrant์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ๋จ์๋ค.
์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ค์ ํ
์ด๋ธ, Elasticsearch์ Index์ ๋์๋๋ค.
์๋จ์ ๊ฐ๋ฐ์ ์ฝ์์ ์ฌ์ฉํ๋ฉด ์์ฝ๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ค๋ณผ ์ ์๋ค.

์ด๊ฑธ ํตํด์ ๊ฐ๋จํ ์ค์ต์ ํด๋ณด๊ฒ ๋ค.
/collections API๋ ์ปฌ๋ ์
๋ชฉ๋ก์ ์กฐํํ๋ API๋ค. ์์ง ์๋ฌด๊ฒ๋ ๋ง๋ ์ ์ด ์์ด์ ๋ค์ด์๋๊ฑด ์๋ค.
์ปฌ๋ ์ ์์ฑ
์ปฌ๋ ์
์ ์์ฑํ๋ ๊ฒ์ ๊ทธ๋ฆฌ ์ด๋ ต์ง ์๋ค.
๋ค์์ 256์ง๋ฆฌ Dot Product์ฉ ๋ฒกํฐ ์ปฌ๋ ์
"products"๋ฅผ ๋ง๋๋ ๊ฐ๋จํ ์์ฒญ์ด๋ค.
PUT /collections/products
{
"vectors": {
"size": 256,
"distance": "Dot"
}
}
์ฑ๊ณต์ด ๋จ์ด์ง๋ฉด
๋ฆฌ์คํธ์์ ์กฐํ ๊ฐ๋ฅํ๊ณ

์์ธ ์ ๋ณด๋ ์ด๋ ๊ฒ ํ์ธํด๋ณผ ์ ์๋ค.
๋ญ ์ด๊ฒ์ ๊ฒ ๋ง๋ค.
๊ทธ๋ฆฌ๊ณ UI ์ปฌ๋ ์
์์๋ ํ์ธํ ์ ์๊ฒ ๋ ๊ฒ์ด๋ค.
๋ฉํฐ ๋ฒกํฐ
์์์ ๋ง๋ ๋ฒกํฐ ์ปฌ๋ ์
์ ๋จ์ผ ๋ฒกํฐ๋ง์ ๊ฐ์ง๋ ์ปฌ๋ ์
์ด๋ค.
ํ์ง๋ง ๋ฒกํฐ ํ๋๋ฅผ ์ฌ๋ฌ๊ฐ ๋ซ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
vectors ์์ ๋ ํค๋ฅผ ์ฌ๋ฌ๊ฐ ๋ฌ์ ๊น๋ฉด ๋๋ค.
PUT /collections/products2
{
"vectors": {
"image": {
"size": 256,
"distance": "Dot"
},
"text": {
"size": 256,
"distance": "Dot"
}
}
}

์ปฌ๋ ์ alias
alias๋ ์ปฌ๋ ์ ์ ๋ํด ๋ถ์ผ ์ ์๋ ๋ ๋ค๋ฅธ ๋ณ๋ช ์ด๋ค.
Elasticsearch์์๋ ์ธ๋ฑ์ค๋ฅผ ์๋ก์ด ์ธ๋ฑ์ค๋ก ์ฎ๊ธธ๋, ๋ค์ดํ์ ์์ด ๊ต์ฒดํ๊ธฐ ์ํด์ alias ๊ธฐ๋ฐ ์ค์์นญ์ ์ฌ์ฉํ๊ณค ํ๋ค. qdrant๋ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ง์ํ๋ค.
alias์ ์์ฑ์ ์ด๋ฐ ์์ผ๋ก ์ด๋ค์ง๋ค.
๊ทธ๋ฅ ์ปฌ๋ ์
์ products_prod๋ ์ด๋ฆ์ ๋ถ์ธ ๊ฒ์ด๋ค.
๊ทธ๋ผ ์ด์ products_prod๋ ์ด๋ฆ์ผ๋ก๋ products ์ปฌ๋ ์ ์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค.
๋ง๋ค์ด์ง alias ๋ชฉ๋ก์ ์ ์ฉ api๋ก ํ์ธํ ์ ์๋ค.

alias์ ์ญ์ ์ ์์ฑ์ ๋จ์ผ BATCH๋ก ๋ฌถ์ด์ ์๋ฉด ๋ค์ดํ์ ์์ด alias๊ฐ ๋ค๋ฅธ ์ปฌ๋ ์ ์ ๊ฐ๋ฆฌํค๊ฒ ํ ์๋ ์๋ค.
์ด์์ ์์ด ๊ฑฐ์ ํ์์ ์ธ ํธ๋ฆญ์ด๋ค.
์ฐธ์กฐ
https://qdrant.tech/documentation/concepts/collections/