[Qdrant] group query

qdrant๋„ grouping์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ฟผ๋ฆฌ ๊ตฌ๋ฌธ์„ ์ œ๊ณตํ•œ๋‹ค.
์ผ๋ฐ˜ ์กฐํšŒ, scroll์—์„œ๋Š” ์•ˆ๋˜๊ณ , ์ „์šฉ ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰ API๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ณต์žกํ•œ ํ†ต๊ณ„ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š”๊ฑด ์•„๋‹ˆ๊ณ , ๋‹จ์ˆœ ๋ฐฐ์—ด ๊ทธ๋ฃจํ•‘ ์ •๋„๋งŒ ๊ธฐ๋Šฅํ•œ๋‹ค.




๋ฐ์ดํ„ฐ ์„ธํŒ…

์ ๋‹นํžˆ ๊น”์•˜๋‹ค.

PUT /collections/products
{
    "vectors": {
      "size": 4,
      "distance": "Dot"
    }
}

PUT /collections/products/points
{
    "points": [
      {
        "id": 1,
        "payload": {
          "color": "blue", 
          "price": 10000
        },
        "vector": [1,1,1,1]
      },
      {
        "id": 2,
        "payload": {
          "color": "red", 
          "price": 5000
        },
        "vector": [1,2,1,1]
      },
      {
        "id": 3,
        "payload": {
          "color": "blue", 
          "price": 20000
        },
        "vector": [1,1,2,2]
      },
      {
        "id": 4,
        "payload": {
          "color": "yellow", 
          "price": 4000
        },
        "vector": [1,2,3,1]
      },
      {
        "id": 5,
        "payload": {
          "color": "blue", 
          "price": 4500
        },
        "vector": [1,1,1,1]
      },
      {
        "id": 6,
        "payload": {
          "color": "black", 
          "price": 15000
        },
        "vector": [1,1,1,1]
      },
      {
        "id": 7,
        "payload": {
          "color": "white", 
          "price": 2000
        },
        "vector": [1,1,1,1]
      },
    ]
}

๊ทธ๋Ÿฌ๋ฉด ์ด๋Ÿฐ ์‹์œผ๋กœ ๊ทธ๋ฃน ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ ค๋ณผ ์ˆ˜ ์žˆ๋‹ค.
์ผ๋ฐ˜ query API์™€ ์š”์ฒญ ํ˜•์‹์€ ๊ฑฐ์˜ ๊ฐ™๋‹ค. ๊ทธ๋ฃน ๊ธฐ์ค€์„ ์ง€์ •ํ•˜๋Š” ํ•„๋“œ์ธ group_by๊ฐ€ ์ถ”๊ฐ€๋  ๋ถ„์ด๋‹ค.

POST /collections/products/points/query/groups
{
  "query": [2,2,2,2], 
  "group_by": "color",
  "with_vector": true, 
  "with_payload": true
}

์ด๋Ÿฌ๋ฉด ์ด์ œ color ๊ธฐ์ค€์œผ๋กœ ๊ฐ’์„ ๋ฌถ๊ณ , hits๋ผ๋Š” ๋‚ด๋ถ€ ํ•„๋“œ์— ๋ชจ์•„์„œ ๋ฟŒ๋ ค์ค€๋‹ค.

์ฐธ๊ณ ๋กœ, ์„ฑ๋Šฅ ๋ฌธ์ œ ๋•Œ๋ฌธ์ธ์ง€ ๊ทธ๋ฃจํ•‘ํ•ด์„œ ๋ฟŒ๋ ค์ฃผ๋Š” ๊ฐœ์ˆ˜์—๋Š” ์ œํ•œ์ด ์กด์žฌํ•œ๋‹ค.
group_size๋ผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ธฐ๋ณธ๊ฐ’์€ 3๊ฐœ๋‹ค.



์ฐธ์กฐ
https://api.qdrant.tech/api-reference/search/query-points-groups