diff --git a/src/index.rs b/src/index.rs index 02f3142ce..28b6535c8 100644 --- a/src/index.rs +++ b/src/index.rs @@ -305,7 +305,6 @@ impl Index { &self, query: &str, default_field_names: Option>, - filters: Option<&PyDict>, ) -> PyResult { let mut default_fields = vec![]; let schema = self.index.schema(); @@ -338,48 +337,6 @@ impl Index { tv::query::QueryParser::for_index(&self.index, default_fields); let query = parser.parse_query(query).map_err(to_pyerr)?; - if let Some(filters_dict) = filters { - let mut query_vec = Vec::new(); - query_vec.push((tv::query::Occur::Must, query)); - for key_value_any in filters_dict.items() { - if let Ok(key_value) = key_value_any.downcast::() { - if key_value.len() != 2 { - continue; - } - let key: String = key_value.get_item(0).extract()?; - let field = schema.get_field(&key).ok_or_else(|| { - exceptions::ValueError::py_err(format!( - "Field `{}` is not defined in the schema.", - key - )) - })?; - - if let Ok(value_list) = - key_value.get_item(1).downcast::() - { - for value_element in value_list { - if let Ok(s) = value_element.extract::() { - let facet = tv::schema::Facet::from_text(&s); - let term = - tv::schema::Term::from_facet(field, &facet); - let term_query = tv::query::TermQuery::new( - term, - tv::schema::IndexRecordOption::Basic, - ); - let query: Box = - Box::new(term_query); - query_vec.push((tv::query::Occur::Must, query)); - } - } - } - } - } - let boolean_query = tv::query::BooleanQuery::from(query_vec); - return Ok(Query { - inner: Box::new(boolean_query), - }); - } - Ok(Query { inner: query }) } } diff --git a/tests/tantivy_test.py b/tests/tantivy_test.py index 64aa2a296..154ea34f7 100644 --- a/tests/tantivy_test.py +++ b/tests/tantivy_test.py @@ -129,13 +129,13 @@ def test_and_query_parser_default_fields_undefined(self, ram_index): def test_and_query_parser_default_fields_facets(self, ram_index): index = ram_index - query = index.parse_query("old", default_field_names=["title", "body"], filters={"facet": ["/mytag"]}) + query = index.parse_query("old +facet:/mytag", default_field_names=["title", "body"]) # look for an intersection of documents searcher = index.searcher() result = searcher.search(query, 10) assert result.count == 1 - query = index.parse_query("old", default_field_names=["title", "body"], filters={"facet": ["/wrongtag"]}) + query = index.parse_query("old +facet:/wrong", default_field_names=["title", "body"]) # look for an intersection of documents searcher = index.searcher() result = searcher.search(query, 10)