typesense-rs 27.0.1

An open source search engine for building delightful search experiences.
Documentation
// Typesense API
//
// An open source search engine for building delightful search experiences.
//
// The version of the OpenAPI document: 27.0
//
// Generated by: https://openapi-generator.tech

use serde::{Deserialize, Serialize};

use crate::models;

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Field {
	#[serde(rename = "drop", skip_serializing_if = "Option::is_none")]
	pub drop: Option<bool>,
	#[serde(rename = "embed", skip_serializing_if = "Option::is_none")]
	pub embed: Option<Box<models::FieldEmbed>>,
	#[serde(rename = "facet", skip_serializing_if = "Option::is_none")]
	pub facet: Option<bool>,
	#[serde(rename = "index", skip_serializing_if = "Option::is_none")]
	pub index: Option<bool>,
	#[serde(rename = "infix", skip_serializing_if = "Option::is_none")]
	pub infix: Option<bool>,
	#[serde(rename = "locale", skip_serializing_if = "Option::is_none")]
	pub locale: Option<String>,
	#[serde(rename = "name")]
	pub name: String,
	#[serde(rename = "num_dim", skip_serializing_if = "Option::is_none")]
	pub num_dim: Option<i32>,
	#[serde(rename = "optional", skip_serializing_if = "Option::is_none")]
	pub optional: Option<bool>,
	/// Enables an index optimized for range filtering on numerical fields (e.g.
	/// rating:>3.5). Default: false.
	#[serde(rename = "range_index", skip_serializing_if = "Option::is_none")]
	pub range_index: Option<bool>,
	/// Name of a field in another collection that should be linked to this
	/// collection so that it can be joined during query.
	#[serde(rename = "reference", skip_serializing_if = "Option::is_none")]
	pub reference: Option<String>,
	#[serde(rename = "sort", skip_serializing_if = "Option::is_none")]
	pub sort: Option<bool>,
	/// Values are stemmed before indexing in-memory. Default: false.
	#[serde(rename = "stem", skip_serializing_if = "Option::is_none")]
	pub stem: Option<bool>,
	/// When set to false, the field value will not be stored on disk. Default:
	/// true.
	#[serde(rename = "store", skip_serializing_if = "Option::is_none")]
	pub store: Option<bool>,
	#[serde(rename = "type")]
	pub r#type: String,
	/// The distance metric to be used for vector search. Default: `cosine`. You
	/// can also use `ip` for inner product.
	#[serde(rename = "vec_dist", skip_serializing_if = "Option::is_none")]
	pub vec_dist: Option<String>,
}

impl Field {
	pub fn new(name: String, r#type: String) -> Field {
		Field {
			drop: None,
			embed: None,
			facet: None,
			index: None,
			infix: None,
			locale: None,
			name,
			num_dim: None,
			optional: None,
			range_index: None,
			reference: None,
			sort: None,
			stem: None,
			store: None,
			r#type,
			vec_dist: None,
		}
	}
}