diff --git a/Cargo.toml b/Cargo.toml index bb84e41b8..f39aa328e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ byteorder = "1.0" lazy_static = "1" regex = "1.0" fst = {version="0.3", default-features=false} -fst-regex = { version="0.2" } +fst-regex = { version="0.2", optional=true} lz4 = {version="1.20", optional=true} snap = {version="0.2"} atomicwrites = {version="0.2.2", optional=true} @@ -68,8 +68,9 @@ overflow-checks = true [features] # by default no-fail is disabled. We manually enable it when running test. -default = ["mmap", "no_fail"] +default = ["mmap", "no_fail", "regex_query"] mmap = ["fst/mmap", "atomicwrites"] +regex_query = ["fst-regex"] lz4-compression = ["lz4"] no_fail = ["fail/no_fail"] diff --git a/src/lib.rs b/src/lib.rs index 62802dc91..af9f095d8 100755 --- a/src/lib.rs +++ b/src/lib.rs @@ -136,7 +136,7 @@ extern crate crossbeam; extern crate crossbeam_channel; extern crate fnv; extern crate fst; -extern crate fst_regex; + extern crate futures; extern crate futures_cpupool; extern crate htmlescape; diff --git a/src/query/mod.rs b/src/query/mod.rs index b7136c232..2a15ecd06 100644 --- a/src/query/mod.rs +++ b/src/query/mod.rs @@ -16,7 +16,10 @@ mod phrase_query; mod query; mod query_parser; mod range_query; + +#[cfg(feature="regex_query")] mod regex_query; + mod reqopt_scorer; mod scorer; mod term_query; @@ -47,7 +50,10 @@ pub use self::query::Query; pub use self::query_parser::QueryParser; pub use self::query_parser::QueryParserError; pub use self::range_query::RangeQuery; + +#[cfg(feature="regex_query")] pub use self::regex_query::RegexQuery; + pub use self::reqopt_scorer::RequiredOptionalScorer; pub use self::scorer::ConstScorer; pub use self::scorer::Scorer; diff --git a/src/query/regex_query.rs b/src/query/regex_query.rs index dcdd9bdff..1c6f384a1 100644 --- a/src/query/regex_query.rs +++ b/src/query/regex_query.rs @@ -1,5 +1,7 @@ +extern crate fst_regex; + use error::TantivyError; -use fst_regex::Regex; +use self::fst_regex::Regex; use query::{AutomatonWeight, Query, Weight}; use schema::Field; use std::clone::Clone;