use crate::common::types::ScoreType;
use crate::segment::data_types::load_profile::LoadProfile;
use crate::segment::types::{Filter, SearchParams, WithPayloadInterface, WithVector};
use crate::shard::query::query_enum::QueryEnum;
use crate::shard::search::CoreSearchRequest;
#[derive(Clone, Debug, PartialEq)]
pub struct SearchRequest {
pub query: QueryEnum,
pub filter: Option<Filter>,
pub params: Option<SearchParams>,
pub limit: usize,
pub offset: usize,
pub with_payload: Option<WithPayloadInterface>,
pub with_vector: Option<WithVector>,
pub score_threshold: Option<ScoreType>,
}
impl SearchRequest {
pub fn new(query: QueryEnum, limit: usize) -> Self {
Self {
query,
filter: None,
params: None,
limit,
offset: 0,
with_payload: None,
with_vector: None,
score_threshold: None,
}
}
pub fn load_profile(&self) -> LoadProfile {
CoreSearchRequest::from(self.clone()).load_profile()
}
}