use crate::common::types::ScoreType;
use crate::segment::types::{Filter, SearchParams, WithPayloadInterface, WithVector};
use crate::shard::query::ScoringQuery;
#[derive(Clone, Debug, PartialEq)]
pub struct QueryRequest {
pub prefetches: Vec<Prefetch>,
pub query: Option<ScoringQuery>,
pub filter: Option<Filter>,
pub score_threshold: Option<ScoreType>,
pub limit: usize,
pub offset: usize,
pub params: Option<SearchParams>,
pub with_vector: WithVector,
pub with_payload: WithPayloadInterface,
}
impl QueryRequest {
pub fn new(limit: usize) -> Self {
Self {
prefetches: Vec::new(),
query: None,
filter: None,
score_threshold: None,
limit,
offset: 0,
params: None,
with_vector: WithVector::Bool(false),
with_payload: WithPayloadInterface::Bool(false),
}
}
}
#[derive(Clone, Debug, PartialEq)]
pub struct Prefetch {
pub prefetches: Vec<Prefetch>,
pub query: Option<ScoringQuery>,
pub limit: usize,
pub params: Option<SearchParams>,
pub filter: Option<Filter>,
pub score_threshold: Option<ScoreType>,
}
impl Prefetch {
pub fn new(limit: usize) -> Self {
Self {
prefetches: Vec::new(),
query: None,
limit,
params: None,
filter: None,
score_threshold: None,
}
}
}