Struct tantivy::query::QueryParser
[−]
[src]
pub struct QueryParser { /* fields omitted */ }
Tantivy's Query parser
The language covered by the current parser is extremely simple.
-
simple terms: "e.g.:
Barack Obama
are simply tokenized using tantivy'sStandardTokenizer
, hence becoming["barack", "obama"]
. The terms are then searched within the default terms of the query parser.e.g. If
body
andtitle
are default fields, our example terms are["title:barack", "body:barack", "title:obama", "body:obama"]
. By default, all tokenized and indexed fields are default fields.Multiple terms are handled as an
OR
: any document containing at least one of the term will go through the scoring.This behavior is slower, but is not a bad idea if the user is sorting by relevance : The user typically just scans through the first few documents in order of decreasing relevance and will stop when the documents are not relevant anymore. Making it possible to make this behavior customizable is tracked in issue #27.
-
negative terms: By prepending a term by a
-
, a term can be excluded from the search. This is useful for disambiguating a query. e.g.apple -fruit
-
must terms: By prepending a term by a
+
, a term can be made required for the search.
Methods
impl QueryParser
[src]
pub fn new(
schema: Schema,
default_fields: Vec<Field>,
tokenizer_manager: TokenizerManager
) -> QueryParser
[src]
schema: Schema,
default_fields: Vec<Field>,
tokenizer_manager: TokenizerManager
) -> QueryParser
Creates a QueryParser
, given
- schema - index Schema
- default_fields - fields used to search if no field is specifically defined in the query.
pub fn for_index(index: &Index, default_fields: Vec<Field>) -> QueryParser
[src]
Creates a QueryParser
, given
- an index
- a set of default - fields used to search if no field is specifically defined in the query.
pub fn set_conjunction_by_default(&mut self)
[src]
Set the default way to compose queries to a conjunction.
By default, the query happy tax payer
is equivalent to the query
happy OR tax OR payer
. After calling .set_conjunction_by_default()
happy tax payer
will be interpreted by the parser as happy AND tax AND payer
.
pub fn parse_query(&self, query: &str) -> Result<Box<Query>, QueryParserError>
[src]
Parse a query
Note that parse_query
returns an error if the input
is not a valid query.
There is currently no lenient mode for the query parser which makes it a bad choice for a public/broad user search engine.
Implementing a lenient mode for this query parser is tracked in Issue 5