docs: Query API snippets with Rust (#1104)

This commit is contained in:
Anush
2024-08-23 22:44:43 +05:30
committed by GitHub
parent d4f07f7e50
commit 4821e18664
8 changed files with 221 additions and 172 deletions
@@ -86,21 +86,26 @@ client.recommend("{collection_name}", {
```
```rust
use qdrant_client::Qdrant;
use qdrant_client::qdrant::{
Condition, Filter, RecommendPointsBuilder, RecommendStrategy,
Condition, Filter, QueryPointsBuilder, RecommendInputBuilder, RecommendStrategy,
};
use qdrant_client::Qdrant;
let client = Qdrant::from_url("http://localhost:6334").build()?;
client
.recommend(
RecommendPointsBuilder::new("{collection_name}", 3)
.add_positive(100)
.add_positive(231)
.add_positive(vec![0.2, 0.3, 0.4, 0.5])
.add_negative(718)
.strategy(RecommendStrategy::AverageVector)
.query(
QueryPointsBuilder::new("{collection_name}")
.query(
RecommendInputBuilder::default()
.add_positive(100)
.add_positive(231)
.add_positive(vec![0.2, 0.3, 0.4, 0.5])
.add_negative(718)
.strategy(RecommendStrategy::AverageVector)
.build(),
)
.limit(3)
.filter(Filter::must([Condition::matches(
"city",
"London".to_string(),
@@ -195,9 +200,9 @@ The way it works is that each candidate is measured against every example, then
```rust
let score = if best_positive_score > best_negative_score {
best_positive_score;
best_positive_score
} else {
-(best_negative_score * best_negative_score);
-(best_negative_score * best_negative_score)
};
```
@@ -259,14 +264,19 @@ client.recommend("{collection_name}", {
```
```rust
use qdrant_client::qdrant::RecommendPointsBuilder;
use qdrant_client::qdrant::{QueryPointsBuilder, RecommendInputBuilder};
client
.recommend(
RecommendPointsBuilder::new("{collection_name}", 10)
.add_positive(100)
.add_positive(231)
.add_negative(718)
.query(
QueryPointsBuilder::new("{collection_name}")
.query(
RecommendInputBuilder::default()
.add_positive(100)
.add_positive(231)
.add_negative(718)
.build(),
)
.limit(10)
.using("image"),
)
.await?;
@@ -367,14 +377,19 @@ client.recommend("{collection_name}", {
```
```rust
use qdrant_client::qdrant::{LookupLocationBuilder, RecommendPointsBuilder};
use qdrant_client::qdrant::{LookupLocationBuilder, QueryPointsBuilder, RecommendInputBuilder};
client
.recommend(
RecommendPointsBuilder::new("{collection_name}", 10)
.add_positive(100)
.add_positive(231)
.add_negative(718)
.query(
QueryPointsBuilder::new("{collection_name}")
.query(
RecommendInputBuilder::default()
.add_positive(100)
.add_positive(231)
.add_negative(718)
.build(),
)
.limit(10)
.using("image")
.lookup_from(
LookupLocationBuilder::new("{external_collection_name}")
@@ -552,30 +567,40 @@ client.recommend_batch("{collection_name}", {
```rust
use qdrant_client::qdrant::{
Condition, Filter, RecommendBatchPointsBuilder, RecommendPointsBuilder,
Condition, Filter, QueryBatchPointsBuilder, QueryPointsBuilder,
RecommendInputBuilder,
};
use qdrant_client::Qdrant;
let client = Qdrant::from_url("http://localhost:6334").build()?;
let filter = Filter::must([Condition::matches("city", "London".to_string())]);
let recommend_queries = vec![
RecommendPointsBuilder::new("{collection_name}", 3)
.add_positive(100)
.add_positive(231)
.add_negative(718)
QueryPointsBuilder::new("{collection_name}")
.query(
RecommendInputBuilder::default()
.add_positive(100)
.add_positive(231)
.add_negative(718)
.build(),
)
.filter(filter.clone())
.build(),
RecommendPointsBuilder::new("{collection_name}", 3)
.add_positive(200)
.add_positive(67)
.add_negative(300)
.filter(filter.clone())
QueryPointsBuilder::new("{collection_name}")
.query(
RecommendInputBuilder::default()
.add_positive(200)
.add_positive(67)
.add_negative(300)
.build(),
)
.filter(filter)
.build(),
];
client
.recommend_batch(RecommendBatchPointsBuilder::new(
.query_batch(QueryBatchPointsBuilder::new(
"{collection_name}",
recommend_queries,
))
@@ -790,28 +815,20 @@ client.discover("{collection_name}", {
```
```rust
use qdrant_client::qdrant::{target_vector::Target, vector_example::Example, ContextExamplePairBuilder, DiscoverPointsBuilder, VectorExample};
use qdrant_client::qdrant::{ContextInputBuilder, DiscoverInputBuilder, QueryPointsBuilder};
use qdrant_client::Qdrant;
client
.discover(
DiscoverPointsBuilder::new(
"{collection_name}",
vec![
ContextExamplePairBuilder::default()
.positive(Example::Id(100.into()))
.negative(Example::Id(718.into()))
.build(),
ContextExamplePairBuilder::default()
.positive(Example::Id(200.into()))
.negative(Example::Id(300.into()))
.build(),
],
10,
)
.target(Target::Single(VectorExample {
example: Some(Example::Vector(vec![0.2, 0.1, 0.9, 0.7].into())),
})),
.query(
QueryPointsBuilder::new("{collection_name}").query(
DiscoverInputBuilder::new(
vec![0.2, 0.1, 0.9, 0.7],
ContextInputBuilder::default()
.add_pair(100, 718)
.add_pair(200, 300),
)
.build(),
),
)
.await?;
```
@@ -968,29 +985,20 @@ client.discover("{collection_name}", {
```
```rust
use qdrant_client::qdrant::{
target_vector::Target, vector_example::Example, ContextExamplePairBuilder,
DiscoverPointsBuilder, VectorExample,
};
use qdrant_client::qdrant::{ContextInputBuilder, QueryPointsBuilder};
use qdrant_client::Qdrant;
let client = Qdrant::from_url("http://localhost:6334").build()?;
client
.discover(DiscoverPointsBuilder::new(
"{collection_name}",
vec![
ContextExamplePairBuilder::default()
.positive(Example::Id(100.into()))
.negative(Example::Id(718.into()))
.query(
QueryPointsBuilder::new("{collection_name}").query(
ContextInputBuilder::default()
.add_pair(100, 718)
.add_pair(200, 300)
.build(),
ContextExamplePairBuilder::default()
.positive(Example::Id(200.into()))
.negative(Example::Id(300.into()))
.build(),
],
10,
))
),
)
.await?;
```
@@ -277,12 +277,14 @@ client.search("{collection_name}", {
```
```rust
use qdrant_client::qdrant::{Condition, Filter, SearchParamsBuilder, SearchPointsBuilder};
use qdrant_client::qdrant::{Condition, Filter, QueryPointsBuilder, SearchParamsBuilder};
use qdrant_client::Qdrant;
client
.search_points(
SearchPointsBuilder::new("{collection_name}", vec![0.2, 0.1, 0.9, 0.7], 3)
.query(
QueryPointsBuilder::new("{collection_name}")
.query(vec![0.2, 0.1, 0.9, 0.7])
.limit(3)
.filter(Filter::must([Condition::matches(
"city",
"London".to_string(),
@@ -405,15 +407,17 @@ client.search("{collection_name}", {
```
```rust
use qdrant_client::qdrant::SearchPointsBuilder;
use qdrant_client::qdrant::QueryPointsBuilder;
use qdrant_client::Qdrant;
let client = Qdrant::from_url("http://localhost:6334").build()?;
client
.search_points(
SearchPointsBuilder::new("{collection_name}", vec![0.2, 0.1, 0.9, 0.7], 3)
.vector_name("image"),
.query(
QueryPointsBuilder::new("{collection_name}")
.query(vec![0.2, 0.1, 0.9, 0.7])
.limit(3)
.using("image"),
)
.await?;
```
@@ -517,16 +521,17 @@ client.search("{collection_name}", {
```
```rust
use qdrant_client::qdrant::SearchPointsBuilder;
use qdrant_client::qdrant::QueryPointsBuilder;
use qdrant_client::Qdrant;
let client = Qdrant::from_url("http://localhost:6334").build()?;
client
.search_points(
SearchPointsBuilder::new("{collection_name}", vec![2.0, 1.0], 3)
.sparse_indices(vec![1, 7])
.vector_name("text"),
.query(
QueryPointsBuilder::new("{collection_name}")
.query(vec![(1, 2.0), (7, 1.0)])
.limit(3)
.using("text"),
)
.await?;
```
@@ -610,14 +615,16 @@ client.search("{collection_name}", {
```
```rust
use qdrant_client::qdrant::SearchPointsBuilder;
use qdrant_client::qdrant::QueryPointsBuilder;
use qdrant_client::Qdrant;
let client = Qdrant::from_url("http://localhost:6334").build()?;
client
.search_points(
SearchPointsBuilder::new("{collection_name}", vec![0.2, 0.1, 0.9, 0.7], 3)
.query(
QueryPointsBuilder::new("{collection_name}")
.query(vec![0.2, 0.1, 0.9, 0.7])
.limit(3)
.with_payload(true)
.with_vectors(true),
)
@@ -698,12 +705,14 @@ client.search("{collection_name}", {
```
```rust
use qdrant_client::qdrant::{with_payload_selector::SelectorOptions, SearchPointsBuilder};
use qdrant_client::qdrant::{with_payload_selector::SelectorOptions, QueryPointsBuilder};
use qdrant_client::Qdrant;
client
.search_points(
SearchPointsBuilder::new("{collection_name}", vec![0.2, 0.1, 0.9, 0.7], 3)
.query(
QueryPointsBuilder::new("{collection_name}")
.query(vec![0.2, 0.1, 0.9, 0.7])
.limit(3)
.with_payload(SelectorOptions::Include(
vec![
"city".to_string(),
@@ -800,20 +809,17 @@ client.search("{collection_name}", {
```
```rust
use qdrant_client::qdrant::{with_payload_selector::SelectorOptions, SearchPointsBuilder};
use qdrant_client::qdrant::{with_payload_selector::SelectorOptions, QueryPointsBuilder};
use qdrant_client::Qdrant;
let client = Qdrant::from_url("http://localhost:6334").build()?;
client
.search_points(
SearchPointsBuilder::new("{collection_name}", vec![0.2, 0.1, 0.9, 0.7], 3)
.with_payload(SelectorOptions::Exclude(
vec![
"city".to_string(),
]
.into(),
))
.query(
QueryPointsBuilder::new("{collection_name}")
.query(vec![0.2, 0.1, 0.9, 0.7])
.limit(3)
.with_payload(SelectorOptions::Exclude(vec!["city".to_string()].into()))
.with_vectors(true),
)
.await?;
@@ -976,24 +982,29 @@ client.searchBatch("{collection_name}", {
```
```rust
use qdrant_client::qdrant::{Condition, Filter, SearchBatchPointsBuilder, SearchPointsBuilder};
use qdrant_client::qdrant::{Condition, Filter, QueryBatchPointsBuilder, QueryPointsBuilder};
use qdrant_client::Qdrant;
let client = Qdrant::from_url("http://localhost:6334").build()?;
let filter = Filter::must([Condition::matches("city", "London".to_string())]);
let searches = vec![
SearchPointsBuilder::new("{collection_name}", vec![0.2, 0.1, 0.9, 0.7], 3)
QueryPointsBuilder::new("{collection_name}")
.query(vec![0.1, 0.2, 0.3, 0.4])
.limit(3)
.filter(filter.clone())
.build(),
SearchPointsBuilder::new("{collection_name}", vec![0.5, 0.3, 0.2, 0.3], 3)
.filter(filter.)
QueryPointsBuilder::new("{collection_name}")
.query(vec![0.5, 0.3, 0.2, 0.3])
.limit(3)
.filter(filter)
.build(),
];
client
.search_batch_points(SearchBatchPointsBuilder::new("{collection_name}", searches))
.await?;
.query_batch(QueryBatchPointsBuilder::new("{collection_name}", searches))
.await?;
```
```java
@@ -1127,14 +1138,15 @@ client.search("{collection_name}", {
```
```rust
use qdrant_client::qdrant::SearchPointsBuilder;
use qdrant_client::qdrant::QueryPointsBuilder;
use qdrant_client::Qdrant;
let client = Qdrant::from_url("http://localhost:6334").build()?;
client
.search_points(
SearchPointsBuilder::new("{collection_name}", vec![0.2, 0.1, 0.9, 0.7], 3)
.query(
QueryPointsBuilder::new("{collection_name}")
.query(vec![0.2, 0.1, 0.9, 0.7])
.with_payload(true)
.with_vectors(true)
.limit(10)
@@ -1298,16 +1310,17 @@ client.searchPointGroups("{collection_name}", {
```
```rust
use qdrant_client::qdrant::SearchPointGroupsBuilder;
use qdrant_client::qdrant::QueryPointGroupsBuilder;
client
.search_groups(SearchPointGroupsBuilder::new(
"{collection_name}",
vec![1.1],
4,
"document_id",
2,
))
.query_groups(
QueryPointGroupsBuilder::new("{collection_name}", "document_id")
.query(vec![0.2, 0.1, 0.9, 0.7])
.limit(2u64)
.with_payload(true)
.with_vectors(true)
.limit(4u64),
)
.await?;
```
@@ -1464,7 +1477,7 @@ client.searchPointGroups("{collection_name}", {
limit: 2,
group_size: 2,
with_lookup: {
collection: w,
collection: "documents",
with_payload: ["title", "text"],
with_vectors: false,
},
@@ -1472,13 +1485,14 @@ client.searchPointGroups("{collection_name}", {
```
```rust
use qdrant_client::qdrant::{
with_payload_selector::SelectorOptions, SearchPointGroupsBuilder, WithLookupBuilder,
};
use qdrant_client::qdrant::{with_payload_selector::SelectorOptions, QueryPointGroupsBuilder, WithLookupBuilder};
client
.search_groups(
SearchPointGroupsBuilder::new("{collection_name}", vec![1.1], 2, "document_id", 2)
.query_groups(
QueryPointGroupsBuilder::new("{collection_name}", "document_id")
.query(vec![0.2, 0.1, 0.9, 0.7])
.limit(2u64)
.limit(2u64)
.with_lookup(
WithLookupBuilder::new("documents")
.with_payload(SelectorOptions::Include(
@@ -341,16 +341,17 @@ result = client.search(
```
```rust
use qdrant_client::qdrant::SearchPointsBuilder;
use qdrant_client::qdrant::QueryPointsBuilder;
use qdrant_client::Qdrant;
let client = Qdrant::from_url("http://localhost:6334").build()?;
client
.search_points(
SearchPointsBuilder::new("{collection_name}", vec![0.2, 0.1, 0.9, 0.7], 10)
.sparse_indices(vec![1, 3, 5, 7])
.vector_name("text")
.query(
QueryPointsBuilder::new("{collection_name}")
.query(vec![(1, 0.2), (3, 0.1), (5, 0.9), (7, 0.7)])
.limit(10)
.using("text"),
)
.await?;
```
@@ -1109,16 +1109,18 @@ client.search("{collection_name}", {
```rust
use qdrant_client::qdrant::{
read_consistency::Value, Condition, Filter, ReadConsistencyType, SearchParamsBuilder,
SearchPointsBuilder,
read_consistency::Value, Condition, Filter, QueryPointsBuilder, ReadConsistencyType,
SearchParamsBuilder,
};
use qdrant_client::{Qdrant, QdrantError};
let client = Qdrant::from_url("http://localhost:6334").build()?;
client
.search_points(
SearchPointsBuilder::new("{collection_name}", vec![0.2, 0.1, 0.9, 0.7], 3)
.query(
QueryPointsBuilder::new("{collection_name}")
.query(vec![0.2, 0.1, 0.9, 0.7])
.limit(3)
.filter(Filter::must([Condition::matches(
"city",
"London".to_string(),
@@ -233,19 +233,22 @@ client.search("{collection_name}", {
```
```rust
use qdrant_client::qdrant::{Condition, Filter, SearchPointsBuilder};
use qdrant_client::qdrant::{Condition, Filter, QueryPointsBuilder};
use qdrant_client::Qdrant;
let client = Qdrant::from_url("http://localhost:6334").build()?;
client
.search_points(
SearchPointsBuilder::new("{collection_name}", vec![0.1, 0.1, 0.9], 10).filter(
Filter::must([Condition::matches("group_id", "user_1".to_string())]),
),
.query(
QueryPointsBuilder::new("{collection_name}")
.query(vec![0.1, 0.1, 0.9])
.limit(10)
.filter(Filter::must([Condition::matches(
"group_id",
"user_1".to_string(),
)])),
)
.await?;
```
```java
@@ -202,18 +202,21 @@ client.search("{collection_name}", {
```rust
use qdrant_client::qdrant::{
QuantizationSearchParamsBuilder, SearchParamsBuilder, SearchPointsBuilder,
QuantizationSearchParamsBuilder, QueryPointsBuilder, SearchParamsBuilder,
};
use qdrant_client::Qdrant;
let client = Qdrant::from_url("http://localhost:6334").build()?;
client
.search_points(
SearchPointsBuilder::new("{collection_name}", vec![0.2, 0.1, 0.9, 0.7], 3).params(
SearchParamsBuilder::default()
.quantization(QuantizationSearchParamsBuilder::default().rescore(false)),
),
.query(
QueryPointsBuilder::new("{collection_name}")
.query(vec![0.2, 0.1, 0.9, 0.7])
.limit(3)
.params(
SearchParamsBuilder::default()
.quantization(QuantizationSearchParamsBuilder::default().rescore(false)),
),
)
.await?;
```
@@ -566,14 +569,16 @@ client.search("{collection_name}", {
```
```rust
use qdrant_client::qdrant::{SearchParamsBuilder, SearchPointsBuilder};
use qdrant_client::qdrant::{QueryPointsBuilder, SearchParamsBuilder};
use qdrant_client::Qdrant;
let client = Qdrant::from_url("http://localhost:6334").build()?;
client
.search_points(
SearchPointsBuilder::new("{collection_name}", vec![0.2, 0.1, 0.9, 0.7], 3)
.query(
QueryPointsBuilder::new("{collection_name}")
.query(vec![0.2, 0.1, 0.9, 0.7])
.limit(3)
.params(SearchParamsBuilder::default().hnsw_ef(128).exact(false)),
)
.await?;
@@ -621,21 +621,26 @@ client.search("{collection_name}", {
```
```rust
use qdrant_client::qdrant::{QuantizationSearchParamsBuilder, SearchParamsBuilder, SearchPointsBuilder};
use qdrant_client::qdrant::{
QuantizationSearchParamsBuilder, QueryPointsBuilder, SearchParamsBuilder,
};
use qdrant_client::Qdrant;
let client = Qdrant::from_url("http://localhost:6334").build()?;
client
.search_points(
SearchPointsBuilder::new("{collection_name}", vec![0.2, 0.1, 0.9, 0.7], 10).params(
SearchParamsBuilder::default().quantization(
QuantizationSearchParamsBuilder::default()
.ignore(false)
.rescore(true)
.oversampling(2.0),
.query(
QueryPointsBuilder::new("{collection_name}")
.query(vec![0.2, 0.1, 0.9, 0.7])
.limit(10)
.params(
SearchParamsBuilder::default().quantization(
QuantizationSearchParamsBuilder::default()
.ignore(false)
.rescore(true)
.oversampling(2.0),
),
),
),
)
.await?;
```
@@ -760,18 +765,21 @@ client.search("{collection_name}", {
```rust
use qdrant_client::qdrant::{
QuantizationSearchParamsBuilder, SearchParamsBuilder, SearchPointsBuilder,
QuantizationSearchParamsBuilder, QueryPointsBuilder, SearchParamsBuilder,
};
use qdrant_client::Qdrant;
let client = Qdrant::from_url("http://localhost:6334").build()?;
client
.search_points(
SearchPointsBuilder::new("{collection_name}", vec![0.2, 0.1, 0.9, 0.7], 3).params(
SearchParamsBuilder::default()
.quantization(QuantizationSearchParamsBuilder::default().ignore(true)),
),
.query(
QueryPointsBuilder::new("{collection_name}")
.query(vec![0.2, 0.1, 0.9, 0.7])
.limit(3)
.params(
SearchParamsBuilder::default()
.quantization(QuantizationSearchParamsBuilder::default().ignore(true)),
),
)
.await?;
```
@@ -1018,17 +1026,22 @@ client.search("{collection_name}", {
```
```rust
use qdrant_client::qdrant::{QuantizationSearchParamsBuilder, SearchParamsBuilder, SearchPointsBuilder};
use qdrant_client::qdrant::{
QuantizationSearchParamsBuilder, QueryPointsBuilder, SearchParamsBuilder,
};
use qdrant_client::Qdrant;
let client = Qdrant::from_url("http://localhost:6334").build()?;
client
.search_points(
SearchPointsBuilder::new("{collection_name}", vec![0.2, 0.1, 0.9, 0.7], 3).params(
SearchParamsBuilder::default()
.quantization(QuantizationSearchParamsBuilder::default().rescore(false)),
),
.query(
QueryPointsBuilder::new("{collection_name}")
.query(vec![0.2, 0.1, 0.9, 0.7])
.limit(3)
.params(
SearchParamsBuilder::default()
.quantization(QuantizationSearchParamsBuilder::default().rescore(false)),
),
)
.await?;
```
@@ -317,11 +317,13 @@ console.debug(searchResult);
```
```rust
use qdrant_client::qdrant::SearchPointsBuilder;
use qdrant_client::qdrant::QueryPointsBuilder;
let search_result = client
.search_points(
SearchPointsBuilder::new("test_collection", [0.2, 0.1, 0.9, 0.7], 3).with_payload(true),
.query(
QueryPointsBuilder::new("test_collection")
.query(vec![0.2, 0.1, 0.9, 0.7])
.with_payload(true),
)
.await?;
@@ -424,12 +426,13 @@ console.debug(searchResult);
```
```rust
use qdrant_client::qdrant::{Condition, Filter, SearchPointsBuilder};
use qdrant_client::qdrant::{Condition, Filter, QueryPointsBuilder};
let search_result = client
.search_points(
SearchPointsBuilder::new("test_collection", [0.2, 0.1, 0.9, 0.7], 3)
.filter(Filter::all([Condition::matches(
.query(
QueryPointsBuilder::new("test_collection")
.query(vec![0.2, 0.1, 0.9, 0.7])
.filter(Filter::must([Condition::matches(
"city",
"London".to_string(),
)]))