manticoresearch 2.0.0

Сlient for Manticore Search.
Documentation
/*
 * Manticore Search Client
 *
 * Сlient for Manticore Search. 
 *
 * The version of the OpenAPI document: 5.0.0
 * Contact: info@manticoresearch.com
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

/// Knn : Object representing a k-nearest neighbor search query
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Knn {
    /// Field to perform the k-nearest neighbor search on
    #[serde(rename = "field")]
    pub field: String,
    /// The number of nearest neighbors to return
    #[serde(rename = "k")]
    pub k: i32,
    #[serde(rename = "query", skip_serializing_if = "Option::is_none")]
    pub query: Option<Box<models::KnnQuery>>,
    /// The vector used as input for the KNN search
    #[serde(rename = "query_vector", skip_serializing_if = "Option::is_none")]
    pub query_vector: Option<Vec<f64>>,
    /// The docuemnt ID used as input for the KNN search
    #[serde(rename = "doc_id", skip_serializing_if = "Option::is_none")]
    pub doc_id: Option<u64>,
    /// Optional parameter controlling the accuracy of the search
    #[serde(rename = "ef", skip_serializing_if = "Option::is_none")]
    pub ef: Option<i32>,
    /// Optional parameter enabling KNN rescoring (disabled by default)
    #[serde(rename = "rescore", skip_serializing_if = "Option::is_none")]
    pub rescore: Option<bool>,
    /// Optional parameter setting a factor by which k is multiplied when executing the KNN search
    #[serde(rename = "oversampling", skip_serializing_if = "Option::is_none")]
    pub oversampling: Option<f64>,
    #[serde(rename = "filter", skip_serializing_if = "Option::is_none")]
    pub filter: Option<Box<models::QueryFilter>>,
}

impl Knn {
    /// Object representing a k-nearest neighbor search query
    pub fn new(field: String, k: i32) -> Knn {
        Knn {
            field,
            k,
            query: None,
            query_vector: None,
            doc_id: None,
            ef: None,
            rescore: None,
            oversampling: None,
            filter: None,
        }
    }
}