mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-11-26 06:44:27 +01:00
Remove SearchableAttributes; fix #429
This commit is contained in:
parent
73918d803c
commit
203c83bdb4
@ -77,7 +77,6 @@ impl IndexSearchExt for Index {
|
|||||||
limit: 20,
|
limit: 20,
|
||||||
attributes_to_crop: None,
|
attributes_to_crop: None,
|
||||||
attributes_to_retrieve: None,
|
attributes_to_retrieve: None,
|
||||||
searchable_attributes: None,
|
|
||||||
attributes_to_highlight: None,
|
attributes_to_highlight: None,
|
||||||
filters: None,
|
filters: None,
|
||||||
timeout: Duration::from_millis(30),
|
timeout: Duration::from_millis(30),
|
||||||
@ -93,7 +92,6 @@ pub struct SearchBuilder<'a> {
|
|||||||
limit: usize,
|
limit: usize,
|
||||||
attributes_to_crop: Option<HashMap<String, usize>>,
|
attributes_to_crop: Option<HashMap<String, usize>>,
|
||||||
attributes_to_retrieve: Option<HashSet<String>>,
|
attributes_to_retrieve: Option<HashSet<String>>,
|
||||||
searchable_attributes: Option<HashSet<String>>,
|
|
||||||
attributes_to_highlight: Option<HashSet<String>>,
|
attributes_to_highlight: Option<HashSet<String>>,
|
||||||
filters: Option<String>,
|
filters: Option<String>,
|
||||||
timeout: Duration,
|
timeout: Duration,
|
||||||
@ -127,17 +125,6 @@ impl<'a> SearchBuilder<'a> {
|
|||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn searchable_attributes(&mut self, value: HashSet<String>) -> &SearchBuilder {
|
|
||||||
self.searchable_attributes = Some(value);
|
|
||||||
self
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn add_attribute_to_search_in(&mut self, value: String) -> &SearchBuilder {
|
|
||||||
let searchable_attributes = self.searchable_attributes.get_or_insert(HashSet::new());
|
|
||||||
searchable_attributes.insert(value);
|
|
||||||
self
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn attributes_to_highlight(&mut self, value: HashSet<String>) -> &SearchBuilder {
|
pub fn attributes_to_highlight(&mut self, value: HashSet<String>) -> &SearchBuilder {
|
||||||
self.attributes_to_highlight = Some(value);
|
self.attributes_to_highlight = Some(value);
|
||||||
self
|
self
|
||||||
@ -176,13 +163,6 @@ impl<'a> SearchBuilder<'a> {
|
|||||||
None => self.index.query_builder(),
|
None => self.index.query_builder(),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Filter searchable fields
|
|
||||||
if let Some(fields) = &self.searchable_attributes {
|
|
||||||
for attribute in fields.iter().filter_map(|f| schema.attribute(f)) {
|
|
||||||
query_builder.add_searchable_attribute(attribute.0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if let Some(filters) = &self.filters {
|
if let Some(filters) = &self.filters {
|
||||||
let mut split = filters.split(':');
|
let mut split = filters.split(':');
|
||||||
match (split.next(), split.next()) {
|
match (split.next(), split.next()) {
|
||||||
|
@ -20,7 +20,6 @@ struct SearchQuery {
|
|||||||
offset: Option<usize>,
|
offset: Option<usize>,
|
||||||
limit: Option<usize>,
|
limit: Option<usize>,
|
||||||
attributes_to_retrieve: Option<String>,
|
attributes_to_retrieve: Option<String>,
|
||||||
searchable_attributes: Option<String>,
|
|
||||||
attributes_to_crop: Option<String>,
|
attributes_to_crop: Option<String>,
|
||||||
crop_length: Option<usize>,
|
crop_length: Option<usize>,
|
||||||
attributes_to_highlight: Option<String>,
|
attributes_to_highlight: Option<String>,
|
||||||
@ -60,11 +59,7 @@ pub async fn search_with_url_query(ctx: Context<Data>) -> SResult<Response> {
|
|||||||
search_builder.add_retrievable_field(attr.to_string());
|
search_builder.add_retrievable_field(attr.to_string());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let Some(searchable_attributes) = query.searchable_attributes {
|
|
||||||
for attr in searchable_attributes.split(',') {
|
|
||||||
search_builder.add_attribute_to_search_in(attr.to_string());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if let Some(attributes_to_crop) = query.attributes_to_crop {
|
if let Some(attributes_to_crop) = query.attributes_to_crop {
|
||||||
let crop_length = query.crop_length.unwrap_or(200);
|
let crop_length = query.crop_length.unwrap_or(200);
|
||||||
if attributes_to_crop == "*" {
|
if attributes_to_crop == "*" {
|
||||||
@ -189,9 +184,6 @@ pub async fn search_multi_index(mut ctx: Context<Data>) -> SResult<Response> {
|
|||||||
if let Some(attributes_to_retrieve) = par_body.attributes_to_retrieve.clone() {
|
if let Some(attributes_to_retrieve) = par_body.attributes_to_retrieve.clone() {
|
||||||
search_builder.attributes_to_retrieve(attributes_to_retrieve);
|
search_builder.attributes_to_retrieve(attributes_to_retrieve);
|
||||||
}
|
}
|
||||||
if let Some(searchable_attributes) = par_body.searchable_attributes.clone() {
|
|
||||||
search_builder.searchable_attributes(searchable_attributes);
|
|
||||||
}
|
|
||||||
if let Some(attributes_to_crop) = par_body.attributes_to_crop.clone() {
|
if let Some(attributes_to_crop) = par_body.attributes_to_crop.clone() {
|
||||||
search_builder.attributes_to_crop(attributes_to_crop);
|
search_builder.attributes_to_crop(attributes_to_crop);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user