typesense_rs/models/
field.rs

1// Typesense API
2//
3// An open source search engine for building delightful search experiences.
4//
5// The version of the OpenAPI document: 27.0
6//
7// Generated by: https://openapi-generator.tech
8
9use serde::{Deserialize, Serialize};
10
11use crate::models;
12
13#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
14pub struct Field {
15	#[serde(rename = "drop", skip_serializing_if = "Option::is_none")]
16	pub drop: Option<bool>,
17	#[serde(rename = "embed", skip_serializing_if = "Option::is_none")]
18	pub embed: Option<Box<models::FieldEmbed>>,
19	#[serde(rename = "facet", skip_serializing_if = "Option::is_none")]
20	pub facet: Option<bool>,
21	#[serde(rename = "index", skip_serializing_if = "Option::is_none")]
22	pub index: Option<bool>,
23	#[serde(rename = "infix", skip_serializing_if = "Option::is_none")]
24	pub infix: Option<bool>,
25	#[serde(rename = "locale", skip_serializing_if = "Option::is_none")]
26	pub locale: Option<String>,
27	#[serde(rename = "name")]
28	pub name: String,
29	#[serde(rename = "num_dim", skip_serializing_if = "Option::is_none")]
30	pub num_dim: Option<i32>,
31	#[serde(rename = "optional", skip_serializing_if = "Option::is_none")]
32	pub optional: Option<bool>,
33	/// Enables an index optimized for range filtering on numerical fields (e.g.
34	/// rating:>3.5). Default: false.
35	#[serde(rename = "range_index", skip_serializing_if = "Option::is_none")]
36	pub range_index: Option<bool>,
37	/// Name of a field in another collection that should be linked to this
38	/// collection so that it can be joined during query.
39	#[serde(rename = "reference", skip_serializing_if = "Option::is_none")]
40	pub reference: Option<String>,
41	#[serde(rename = "sort", skip_serializing_if = "Option::is_none")]
42	pub sort: Option<bool>,
43	/// Values are stemmed before indexing in-memory. Default: false.
44	#[serde(rename = "stem", skip_serializing_if = "Option::is_none")]
45	pub stem: Option<bool>,
46	/// When set to false, the field value will not be stored on disk. Default:
47	/// true.
48	#[serde(rename = "store", skip_serializing_if = "Option::is_none")]
49	pub store: Option<bool>,
50	#[serde(rename = "type")]
51	pub r#type: String,
52	/// The distance metric to be used for vector search. Default: `cosine`. You
53	/// can also use `ip` for inner product.
54	#[serde(rename = "vec_dist", skip_serializing_if = "Option::is_none")]
55	pub vec_dist: Option<String>,
56}
57
58impl Field {
59	pub fn new(name: String, r#type: String) -> Field {
60		Field {
61			drop: None,
62			embed: None,
63			facet: None,
64			index: None,
65			infix: None,
66			locale: None,
67			name,
68			num_dim: None,
69			optional: None,
70			range_index: None,
71			reference: None,
72			sort: None,
73			stem: None,
74			store: None,
75			r#type,
76			vec_dist: None,
77		}
78	}
79}