Struct tantivy::query::RangeQuery [−][src]
pub struct RangeQuery { /* fields omitted */ }
Expand description
RangeQuery
match all documents that have at least one term within a defined range.
Matched document will all get a constant Score
of one.
Implementation
The current implement will iterate over the terms within the range
and append all of the document cross into a BitSet
.
Example
use tantivy::collector::Count;
use tantivy::query::RangeQuery;
use tantivy::schema::{Schema, INDEXED};
use tantivy::{doc, Index};
let mut schema_builder = Schema::builder();
let year_field = schema_builder.add_u64_field("year", INDEXED);
let schema = schema_builder.build();
let index = Index::create_in_ram(schema);
let mut index_writer = index.writer_with_num_threads(1, 10_000_000)?;
for year in 1950u64..2017u64 {
let num_docs_within_year = 10 + (year - 1950) * (year - 1950);
for _ in 0..num_docs_within_year {
index_writer.add_document(doc!(year_field => year));
}
}
index_writer.commit()?;
let reader = index.reader()?;
let searcher = reader.searcher();
let docs_in_the_sixties = RangeQuery::new_u64(year_field, 1960..1970);
let num_60s_books = searcher.search(&docs_in_the_sixties, &Count)?;
assert_eq!(num_60s_books, 2285);
Ok(())
Implementations
pub fn new_term_bounds(
field: Field,
value_type: Type,
left_bound: &Bound<Term>,
right_bound: &Bound<Term>
) -> RangeQuery
pub fn new_term_bounds(
field: Field,
value_type: Type,
left_bound: &Bound<Term>,
right_bound: &Bound<Term>
) -> RangeQuery
Creates a new RangeQuery
from bounded start and end terms.
If the value type is not correct, something may go terribly wrong when
the Weight
object is created.
Creates a new RangeQuery
over a i64
field.
If the field is not of the type i64
, tantivy
will panic when the Weight
object is created.
pub fn new_i64_bounds(
field: Field,
left_bound: Bound<i64>,
right_bound: Bound<i64>
) -> RangeQuery
pub fn new_i64_bounds(
field: Field,
left_bound: Bound<i64>,
right_bound: Bound<i64>
) -> RangeQuery
Create a new RangeQuery
over a i64
field.
The two Bound
arguments make it possible to create more complex
ranges than semi-inclusive range.
If the field is not of the type i64
, tantivy
will panic when the Weight
object is created.
Creates a new RangeQuery
over a f64
field.
If the field is not of the type f64
, tantivy
will panic when the Weight
object is created.
pub fn new_f64_bounds(
field: Field,
left_bound: Bound<f64>,
right_bound: Bound<f64>
) -> RangeQuery
pub fn new_f64_bounds(
field: Field,
left_bound: Bound<f64>,
right_bound: Bound<f64>
) -> RangeQuery
Create a new RangeQuery
over a f64
field.
The two Bound
arguments make it possible to create more complex
ranges than semi-inclusive range.
If the field is not of the type f64
, tantivy
will panic when the Weight
object is created.
pub fn new_u64_bounds(
field: Field,
left_bound: Bound<u64>,
right_bound: Bound<u64>
) -> RangeQuery
pub fn new_u64_bounds(
field: Field,
left_bound: Bound<u64>,
right_bound: Bound<u64>
) -> RangeQuery
Create a new RangeQuery
over a u64
field.
The two Bound
arguments make it possible to create more complex
ranges than semi-inclusive range.
If the field is not of the type u64
, tantivy
will panic when the Weight
object is created.
Create a new RangeQuery
over a u64
field.
If the field is not of the type u64
, tantivy
will panic when the Weight
object is created.
Create a new RangeQuery
over a Str
field.
The two Bound
arguments make it possible to create more complex
ranges than semi-inclusive range.
If the field is not of the type Str
, tantivy
will panic when the Weight
object is created.
Create a new RangeQuery
over a Str
field.
If the field is not of the type Str
, tantivy
will panic when the Weight
object is created.
Lower bound of range
Upper bound of range
Trait Implementations
Create the weight associated to a query. Read more
Returns an Explanation
for the score of the document.
Returns the number of documents matching the query.
Auto Trait Implementations
impl RefUnwindSafe for RangeQuery
impl Send for RangeQuery
impl Sync for RangeQuery
impl Unpin for RangeQuery
impl UnwindSafe for RangeQuery
Blanket Implementations
Mutably borrows from an owned value. Read more
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more