Spaces:
Build error
Build error
# This test checks that Qdrant answers to all API mentioned in README.md as expected | |
set -ex | |
QDRANT_HOST=${QDRANT_HOST:-'localhost:6333'} | |
qdrant_host_headers=() | |
if [ -n "${QDRANT_HOST_HEADERS}" ]; then | |
while read h; do | |
qdrant_host_headers+=("-H" "$h") | |
done <<< $(echo "${QDRANT_HOST_HEADERS}" | jq -r 'to_entries|map("\(.key): \(.value)")[]') | |
fi | |
# cleanup collection if it exists | |
curl -X DELETE "http://$QDRANT_HOST/collections/test_collection" \ | |
-H 'Content-Type: application/json' "${qdrant_host_headers[@]}" \ | |
--fail -s | jq | |
# create collection | |
curl -X PUT "http://$QDRANT_HOST/collections/test_collection" \ | |
-H 'Content-Type: application/json' "${qdrant_host_headers[@]}" \ | |
--fail -s \ | |
--data-raw '{ | |
"vectors": { | |
"size": 4, | |
"distance": "Dot" | |
}, | |
"optimizers_config": { | |
"default_segment_number": 2 | |
}, | |
"replication_factor": 2 | |
}' | jq | |
curl -L -X PUT "http://$QDRANT_HOST/collections/test_collection/index" \ | |
-H 'Content-Type: application/json' "${qdrant_host_headers[@]}" \ | |
--fail -s \ | |
--data-raw '{ | |
"field_name": "city", | |
"field_schema": "keyword" | |
}' | jq | |
curl -L -X PUT "http://$QDRANT_HOST/collections/test_collection/index" \ | |
-H 'Content-Type: application/json' "${qdrant_host_headers[@]}" \ | |
--fail -s \ | |
--data-raw '{ | |
"field_name": "count", | |
"field_schema": "integer" | |
}' | jq | |
curl -L -X PUT "http://$QDRANT_HOST/collections/test_collection/index" \ | |
-H 'Content-Type: application/json' "${qdrant_host_headers[@]}" \ | |
--fail -s \ | |
--data-raw '{ | |
"field_name": "coords", | |
"field_schema": "geo" | |
}' | jq | |
curl --fail -s "http://$QDRANT_HOST/collections/test_collection" "${qdrant_host_headers[@]-}" | jq | |
# insert points | |
curl -L -X PUT "http://$QDRANT_HOST/collections/test_collection/points?wait=true" \ | |
-H 'Content-Type: application/json' "${qdrant_host_headers[@]}" \ | |
--fail -s \ | |
--data-raw '{ | |
"points": [ | |
{ | |
"id": 1, | |
"vector": [0.05, 0.61, 0.76, 0.74], | |
"payload": { | |
"city": "Berlin", | |
"country": "Germany" , | |
"count": 1000000, | |
"square": 12.5, | |
"coords": { "lat": 1.0, "lon": 2.0 } | |
} | |
}, | |
{"id": 2, "vector": [0.19, 0.81, 0.75, 0.11], "payload": {"city": ["Berlin", "London"]}}, | |
{"id": 3, "vector": [0.36, 0.55, 0.47, 0.94], "payload": {"city": ["Berlin", "Moscow"]}}, | |
{"id": 4, "vector": [0.18, 0.01, 0.85, 0.80], "payload": {"city": ["London", "Moscow"]}}, | |
{"id": "98a9a4b1-4ef2-46fb-8315-a97d874fe1d7", "vector": [0.24, 0.18, 0.22, 0.44], "payload": {"count": [0]}}, | |
{"id": "f0e09527-b096-42a8-94e9-ea94d342b925", "vector": [0.35, 0.08, 0.11, 0.44]} | |
] | |
}' | jq | |
# retrieve point | |
curl -L -X GET "http://$QDRANT_HOST/collections/test_collection/points/2" \ | |
-H 'Content-Type: application/json' "${qdrant_host_headers[@]}" \ | |
--fail -s | jq | |
# retrieve points | |
curl -L -X POST "http://$QDRANT_HOST/collections/test_collection/points" \ | |
-H 'Content-Type: application/json' "${qdrant_host_headers[@]}" \ | |
--fail -s \ | |
--data-raw '{ | |
"ids": [1, 2] | |
}' | jq | |
SAVED_POINTS_COUNT=$(curl --fail -s "http://$QDRANT_HOST/collections/test_collection" "${qdrant_host_headers[@]}" | jq '.result.points_count') | |
[[ "$SAVED_POINTS_COUNT" == "6" ]] || { | |
echo 'check failed - 6 points expected' | |
exit 1 | |
} | |
# search points | |
curl -L -X POST "http://$QDRANT_HOST/collections/test_collection/points/search" \ | |
-H 'Content-Type: application/json' "${qdrant_host_headers[@]}" \ | |
--fail -s \ | |
--data-raw '{ | |
"vector": [0.2,0.1,0.9,0.7], | |
"top": 3 | |
}' | jq | |
# search points batch | |
curl -L -X POST "http://$QDRANT_HOST/collections/test_collection/points/search/batch" \ | |
-H 'Content-Type: application/json' "${qdrant_host_headers[@]}" \ | |
--fail -s \ | |
--data-raw '{ | |
"searches": [ | |
{ | |
"vector": [0.2,0.1,0.9,0.7], | |
"top": 3 | |
}, | |
{ | |
"vector": [0.2,0.1,0.9,0.7], | |
"top": 3 | |
} | |
] | |
}' | jq | |
curl -L -X POST "http://$QDRANT_HOST/collections/test_collection/points/search" \ | |
--fail -s \ | |
-H 'Content-Type: application/json' "${qdrant_host_headers[@]}" \ | |
--data-raw '{ | |
"filter": { | |
"should": [ | |
{ | |
"key": "city", | |
"match": { | |
"value": "London" | |
} | |
} | |
] | |
}, | |
"vector": [0.2, 0.1, 0.9, 0.7], | |
"top": 3 | |
}' | jq | |