Skip to content

Commit 8942f35

Browse files
committed
Simplify parse query facets format
1 parent 79e661c commit 8942f35

File tree

2 files changed

+3
-47
lines changed

2 files changed

+3
-47
lines changed

src/index.rs

Lines changed: 1 addition & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
use pyo3::exceptions;
44
use pyo3::prelude::*;
5-
use pyo3::types::{PyAny, PyDict, PyList, PyTuple};
5+
use pyo3::types::PyAny;
66

77
use crate::document::{extract_value, Document};
88
use crate::query::Query;
@@ -305,7 +305,6 @@ impl Index {
305305
&self,
306306
query: &str,
307307
default_field_names: Option<Vec<String>>,
308-
filters: Option<&PyDict>,
309308
) -> PyResult<Query> {
310309
let mut default_fields = vec![];
311310
let schema = self.index.schema();
@@ -337,49 +336,6 @@ impl Index {
337336
let parser =
338337
tv::query::QueryParser::for_index(&self.index, default_fields);
339338
let query = parser.parse_query(query).map_err(to_pyerr)?;
340-
341-
if let Some(filters_dict) = filters {
342-
let mut query_vec = Vec::new();
343-
query_vec.push((tv::query::Occur::Must, query));
344-
for key_value_any in filters_dict.items() {
345-
if let Ok(key_value) = key_value_any.downcast::<PyTuple>() {
346-
if key_value.len() != 2 {
347-
continue;
348-
}
349-
let key: String = key_value.get_item(0).extract()?;
350-
let field = schema.get_field(&key).ok_or_else(|| {
351-
exceptions::ValueError::py_err(format!(
352-
"Field `{}` is not defined in the schema.",
353-
key
354-
))
355-
})?;
356-
357-
if let Ok(value_list) =
358-
key_value.get_item(1).downcast::<PyList>()
359-
{
360-
for value_element in value_list {
361-
if let Ok(s) = value_element.extract::<String>() {
362-
let facet = tv::schema::Facet::from_text(&s);
363-
let term =
364-
tv::schema::Term::from_facet(field, &facet);
365-
let term_query = tv::query::TermQuery::new(
366-
term,
367-
tv::schema::IndexRecordOption::Basic,
368-
);
369-
let query: Box<dyn tv::query::Query> =
370-
Box::new(term_query);
371-
query_vec.push((tv::query::Occur::Must, query));
372-
}
373-
}
374-
}
375-
}
376-
}
377-
let boolean_query = tv::query::BooleanQuery::from(query_vec);
378-
return Ok(Query {
379-
inner: Box::new(boolean_query),
380-
});
381-
}
382-
383339
Ok(Query { inner: query })
384340
}
385341
}

tests/tantivy_test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,13 +129,13 @@ def test_and_query_parser_default_fields_undefined(self, ram_index):
129129

130130
def test_and_query_parser_default_fields_facets(self, ram_index):
131131
index = ram_index
132-
query = index.parse_query("old", default_field_names=["title", "body"], filters={"facet": ["/mytag"]})
132+
query = index.parse_query("old +facet:/mytag", default_field_names=["title", "body"])
133133
# look for an intersection of documents
134134
searcher = index.searcher()
135135
result = searcher.search(query, 10)
136136
assert result.count == 1
137137

138-
query = index.parse_query("old", default_field_names=["title", "body"], filters={"facet": ["/wrongtag"]})
138+
query = index.parse_query("old +facet:/wrong", default_field_names=["title", "body"])
139139
# look for an intersection of documents
140140
searcher = index.searcher()
141141
result = searcher.search(query, 10)

0 commit comments

Comments
 (0)