[Milvus] Entity

[์›๋ณธ ๋งํฌ]

์ด์ „ ํฌ์ŠคํŠธ
https://blog.naver.com/sssang97/223844460930

Entity๋Š” Collection์— ์†ํ•œ ๊ฐ ๋ฐ์ดํ„ฐ ํ–‰์„ ๋œปํ•œ๋‹ค. ๊ทธ๋ƒฅ ๋ฒกํ„ฐ๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.




Entity ์‚ฝ์ž…

insert ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฝ์ž… ๊ฒธ ์‚ญ์ œ๋ฅผ ๋™์‹œ์— batch๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

### 
POST http://{{HOST}}:{{PORT}}/v2/vectordb/entities/insert
Content-Type: application/json

{
    "dbName": "test_db", 
    "collectionName": "test_collection", 
    "data": [
        {
            "id": 1, 
            "vector": [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8]
        },
        {
            "id": 2, 
            "vector": [0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]
        }
    ]
}
###

์ด๋Ÿฌ๋ฉด ์„ฑ๊ณต ์‘๋‹ต๊ณผ ํ•จ๊ป˜ id ๋ชฉ๋ก์ด ๋ฐ˜ํ™˜๋œ๋‹ค.

๋‚ด ๊ฒฝ์šฐ์—๋Š” ๋™์  ํ•„๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•ด์„œ ์–ธ์ œ๋“  ์ถ”๊ฐ€ ํ•„๋“œ๋ฅผ ๋ฐ์ดํ„ฐ์— ์ง‘์–ด๋„ฃ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ , ๋™์ผํ•œ ๊ธฐ๋ณธํ‚ค๋กœ ๊ฐ’์„ insertํ•˜๋ฉด ๊ธฐ์กด ๊ฐ’์„ ๋Œ€์ฒดํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ update ๊ธฐ๋Šฅ๋„ ๊ฒธํ•˜๋Š” ์…ˆ์ด๋‹ค.




ID๋กœ Entity ์กฐํšŒ

ID๋กœ ํŠน์ • ์—”ํ‹ฐํ‹ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, get API๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋‹ค.

### 
POST http://{{HOST}}:{{PORT}}/v2/vectordb/entities/get
Content-Type: application/json

{
    "dbName": "test_db", 
    "collectionName": "test_collection", 
    "id": [1, 2]
}
###

๊ฐ„๋‹จํ•˜๋‹ค.




Entity ํ•„ํ„ฐ ์กฐํšŒ

milvus๋Š” ๋ฒกํ„ฐ ๊ฒ€์ƒ‰ ์™ธ์—๋„, Elasticsearch์ฒ˜๋Ÿผ ๋‹จ์ˆœ ํ•„ํ„ฐ์— ๋Œ€ํ•ด์„œ๋„ ๊ฝค ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์ธ๋ฑ์Šค๋ฅผ ๊ฑด๋‹ค๋Š” ๊ฐ€์ • ํ•˜์—์„œ ๋ง์ด๋‹ค.

query API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹จ์ˆœ ํ•„ํ„ฐ์— ๊ธฐ๋ฐ˜ํ•œ ์กฐํšŒ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

### 
POST http://{{HOST}}:{{PORT}}/v2/vectordb/entities/query
Content-Type: application/json

{
    "dbName": "test_db", 
    "collectionName": "test_collection", 
    "filter": "color == 'red'"
}
###

filter๋ผ๋Š” ํ•„๋“œ ์•ˆ์—๋‹ค๊ฐ€ ์ž๊ธฐ๋“ค๋งŒ์˜ ํŠน์ˆ˜ํ•œ ํ‘œํ˜„์‹์„ ์ž‘์„ฑํ•ด์„œ ์ง‘์–ด๋„ฃ์œผ๋ฉด ๋œ๋‹ค.

ํ•„ํ„ฐ ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ์ƒ์„ธ๋Š” ๋ณ„๋„ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค.
https://milvus.io/docs/boolean.md




Entity ๋ฒกํ„ฐ ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰

๋ฒกํ„ฐ ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰์„ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด search API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

### 
POST http://{{HOST}}:{{PORT}}/v2/vectordb/entities/search
Content-Type: application/json

{
    "dbName": "test_db", 
    "collectionName": "test_collection", 
    "data": [
        [
            0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.7
        ]
    ]
}
###

๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ๋ฒ•์€ ์–ด๋ ต์ง€ ์•Š๋‹ค. ๊ทธ๋ƒฅ ๋ฒกํ„ฐ ๊ฐ’์„ ํ•˜๋‚˜ ๋„˜๊ฒจ์„œ ๋Œ๋ฆฌ๋ฉด ๋œ๋‹ค.


๋ฒกํ„ฐ ๊ฒ€์ƒ‰๊ณผ ํ•จ๊ป˜ ํ•„ํ„ฐ๋ฅผ ์กฐํ•ฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
์ด๊ฒƒ๋„ ์ œ ์„ฑ๋Šฅ์„ ๋‚ด๋ ค๋ฉด ์ธ๋ฑ์Šค๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•œ๋‹ค.



์ฐธ์กฐ
https://milvus.io/api-reference/restful/v2.5.x/v2/Vector%20(v2)/Search.md
https://milvus.io/docs/insert-update-delete.md