mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-09-06 12:46:31 +00:00
add a few helpers
This commit is contained in:
@ -484,7 +484,9 @@ impl ErrorCode for milli::Error {
|
|||||||
Code::InvalidFacetSearchFacetName
|
Code::InvalidFacetSearchFacetName
|
||||||
}
|
}
|
||||||
UserError::CriterionError(_) => Code::InvalidSettingsRankingRules,
|
UserError::CriterionError(_) => Code::InvalidSettingsRankingRules,
|
||||||
UserError::InvalidGeoField { .. } => Code::InvalidDocumentGeoField,
|
UserError::InvalidGeoField { .. } | UserError::GeoJsonError(_) => {
|
||||||
|
Code::InvalidDocumentGeoField
|
||||||
|
}
|
||||||
UserError::InvalidVectorDimensions { .. }
|
UserError::InvalidVectorDimensions { .. }
|
||||||
| UserError::InvalidIndexingVectorDimensions { .. } => {
|
| UserError::InvalidIndexingVectorDimensions { .. } => {
|
||||||
Code::InvalidVectorDimensions
|
Code::InvalidVectorDimensions
|
||||||
|
@ -11,3 +11,4 @@ const fn parse_u32(s: &str) -> u32 {
|
|||||||
|
|
||||||
pub const RESERVED_VECTORS_FIELD_NAME: &str = "_vectors";
|
pub const RESERVED_VECTORS_FIELD_NAME: &str = "_vectors";
|
||||||
pub const RESERVED_GEO_FIELD_NAME: &str = "_geo";
|
pub const RESERVED_GEO_FIELD_NAME: &str = "_geo";
|
||||||
|
pub const RESERVED_GEOJSON_FIELD_NAME: &str = "_geojson";
|
||||||
|
@ -78,6 +78,8 @@ pub enum InternalError {
|
|||||||
#[error(transparent)]
|
#[error(transparent)]
|
||||||
ArroyError(#[from] arroy::Error),
|
ArroyError(#[from] arroy::Error),
|
||||||
#[error(transparent)]
|
#[error(transparent)]
|
||||||
|
CelluliteError(#[from] cellulite::Error),
|
||||||
|
#[error(transparent)]
|
||||||
VectorEmbeddingError(#[from] crate::vector::Error),
|
VectorEmbeddingError(#[from] crate::vector::Error),
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -151,6 +153,8 @@ and can not be more than 511 bytes.", .document_id.to_string()
|
|||||||
},
|
},
|
||||||
#[error(transparent)]
|
#[error(transparent)]
|
||||||
InvalidGeoField(#[from] Box<GeoError>),
|
InvalidGeoField(#[from] Box<GeoError>),
|
||||||
|
#[error(transparent)]
|
||||||
|
GeoJsonError(#[from] geojson::Error),
|
||||||
#[error("Invalid vector dimensions: expected: `{}`, found: `{}`.", .expected, .found)]
|
#[error("Invalid vector dimensions: expected: `{}`, found: `{}`.", .expected, .found)]
|
||||||
InvalidVectorDimensions { expected: usize, found: usize },
|
InvalidVectorDimensions { expected: usize, found: usize },
|
||||||
#[error("Invalid vector dimensions in document with id `{document_id}` in `._vectors.{embedder_name}`.\n - note: embedding #{embedding_index} has dimensions {found}\n - note: embedder `{embedder_name}` requires {expected}")]
|
#[error("Invalid vector dimensions in document with id `{document_id}` in `._vectors.{embedder_name}`.\n - note: embedding #{embedding_index} has dimensions {found}\n - note: embedder `{embedder_name}` requires {expected}")]
|
||||||
|
@ -5,7 +5,7 @@ use serde::{Deserialize, Serialize};
|
|||||||
use utoipa::ToSchema;
|
use utoipa::ToSchema;
|
||||||
|
|
||||||
use crate::attribute_patterns::{match_distinct_field, match_field_legacy, PatternMatch};
|
use crate::attribute_patterns::{match_distinct_field, match_field_legacy, PatternMatch};
|
||||||
use crate::constants::RESERVED_GEO_FIELD_NAME;
|
use crate::constants::{RESERVED_GEOJSON_FIELD_NAME, RESERVED_GEO_FIELD_NAME};
|
||||||
use crate::AttributePatterns;
|
use crate::AttributePatterns;
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Debug, ToSchema)]
|
#[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Debug, ToSchema)]
|
||||||
@ -34,6 +34,10 @@ impl FilterableAttributesRule {
|
|||||||
matches!(self, FilterableAttributesRule::Field(field_name) if field_name == RESERVED_GEO_FIELD_NAME)
|
matches!(self, FilterableAttributesRule::Field(field_name) if field_name == RESERVED_GEO_FIELD_NAME)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn has_geojson(&self) -> bool {
|
||||||
|
matches!(self, FilterableAttributesRule::Field(field_name) if field_name == RESERVED_GEOJSON_FIELD_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
/// Get the features of the rule.
|
/// Get the features of the rule.
|
||||||
pub fn features(&self) -> FilterableAttributesFeatures {
|
pub fn features(&self) -> FilterableAttributesFeatures {
|
||||||
match self {
|
match self {
|
||||||
|
Reference in New Issue
Block a user