qdrant_client/qdrant_client/conversions/
query.rs1use crate::qdrant::{
2 query, ContextInput, DiscoverInput, Formula, FormulaBuilder, Fusion, OrderBy, OrderByBuilder,
3 PointId, Query, RecommendInput, VectorInput,
4};
5
6impl From<VectorInput> for Query {
7 fn from(value: VectorInput) -> Self {
8 Self {
9 variant: Some(query::Variant::Nearest(value)),
10 }
11 }
12}
13
14impl From<RecommendInput> for Query {
15 fn from(value: RecommendInput) -> Self {
16 Self {
17 variant: Some(query::Variant::Recommend(value)),
18 }
19 }
20}
21
22impl From<DiscoverInput> for Query {
23 fn from(value: DiscoverInput) -> Self {
24 Self {
25 variant: Some(query::Variant::Discover(value)),
26 }
27 }
28}
29
30impl From<ContextInput> for Query {
31 fn from(value: ContextInput) -> Self {
32 Self {
33 variant: Some(query::Variant::Context(value)),
34 }
35 }
36}
37
38impl From<OrderBy> for Query {
39 fn from(value: OrderBy) -> Self {
40 Self {
41 variant: Some(query::Variant::OrderBy(value)),
42 }
43 }
44}
45
46impl From<Fusion> for Query {
47 fn from(value: Fusion) -> Self {
48 Self {
49 variant: Some(query::Variant::Fusion(value.into())),
50 }
51 }
52}
53
54impl From<Formula> for Query {
55 fn from(value: Formula) -> Self {
56 Self {
57 variant: Some(query::Variant::Formula(value)),
58 }
59 }
60}
61
62impl From<FormulaBuilder> for Query {
63 fn from(value: FormulaBuilder) -> Self {
64 Self {
65 variant: Some(query::Variant::Formula(value.build())),
66 }
67 }
68}
69
70impl<T: Into<String>> From<T> for OrderBy {
71 fn from(value: T) -> Self {
72 OrderByBuilder::new(value).build()
73 }
74}
75
76impl From<Vec<f32>> for Query {
77 fn from(value: Vec<f32>) -> Self {
78 Query {
79 variant: Some(query::Variant::Nearest(VectorInput::new_dense(value))),
80 }
81 }
82}
83
84impl From<Vec<(u32, f32)>> for Query {
85 fn from(value: Vec<(u32, f32)>) -> Self {
86 let (indices, values): (Vec<_>, Vec<_>) = value.iter().copied().unzip();
87 Query {
88 variant: Some(query::Variant::Nearest(VectorInput::new_sparse(
89 indices, values,
90 ))),
91 }
92 }
93}
94
95impl From<Vec<Vec<f32>>> for Query {
96 fn from(value: Vec<Vec<f32>>) -> Self {
97 Query {
98 variant: Some(query::Variant::Nearest(VectorInput::new_multi(value))),
99 }
100 }
101}
102
103impl From<PointId> for Query {
104 fn from(value: PointId) -> Self {
105 Query {
106 variant: Some(query::Variant::Nearest(VectorInput::new_id(value))),
107 }
108 }
109}