From 459c11ce1fb46d8f57bb07dc7d6b6db131949e77 Mon Sep 17 00:00:00 2001 From: Travis CI User Date: Tue, 20 Feb 2018 15:18:02 +0000 Subject: [PATCH] Automatic Travis documentation build --- .../tantivy/query/boolean_query/mod.rs.html | 112 +++++++++++++++++- .../query/query_parser/query_grammar.rs.html | 8 +- 2 files changed, 115 insertions(+), 5 deletions(-) diff --git a/master/src/tantivy/query/boolean_query/mod.rs.html b/master/src/tantivy/query/boolean_query/mod.rs.html index cee2d9068..f16b8aceb 100644 --- a/master/src/tantivy/query/boolean_query/mod.rs.html +++ b/master/src/tantivy/query/boolean_query/mod.rs.html @@ -173,6 +173,60 @@ 117 118 119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173
 mod boolean_query;
 mod boolean_weight;
@@ -186,11 +240,17 @@
     use query::Occur;
     use query::Query;
     use query::TermQuery;
+    use query::Intersection;
+    use query::Scorer;
+    use query::term_query::TermScorer;
     use collector::tests::TestCollector;
     use Index;
+    use downcast::Downcast;
     use schema::*;
-    use schema::IndexRecordOption;
     use query::QueryParser;
+    use query::RequiredOptionalScorer;
+    use query::score_combiner::SumWithCoordsCombiner;
+
 
 
     fn aux_test_helper() -> (Index, Field) {
@@ -232,10 +292,58 @@
         let (index, text_field) = aux_test_helper();
         let query_parser = QueryParser::for_index(&index, vec![text_field]);
         let query = query_parser.parse_query("(+a +b) d").unwrap();
-        println!("{:?}", query);
         assert_eq!(query.count(&*index.searcher()).unwrap(), 3);
     }
 
+    #[test]
+    pub fn test_boolean_single_must_clause() {
+        let (index, text_field) = aux_test_helper();
+        let query_parser = QueryParser::for_index(&index, vec![text_field]);
+        let query = query_parser.parse_query("+a").unwrap();
+        let searcher = index.searcher();
+        let weight = query.weight(&*searcher, true).unwrap();
+        let scorer = weight.scorer(searcher.segment_reader(0u32)).unwrap();
+        assert!(Downcast::<TermScorer>::is_type(&*scorer));
+    }
+
+    #[test]
+    pub fn test_boolean_termonly_intersection() {
+        let (index, text_field) = aux_test_helper();
+        let query_parser = QueryParser::for_index(&index, vec![text_field]);
+        let searcher = index.searcher();
+        {
+            let query = query_parser.parse_query("+a +b +c").unwrap();
+            let weight = query.weight(&*searcher, true).unwrap();
+            let scorer = weight.scorer(searcher.segment_reader(0u32)).unwrap();
+            assert!(Downcast::<Intersection<TermScorer>>::is_type(&*scorer));
+        }
+        {
+            let query = query_parser.parse_query("+a +(b c)").unwrap();
+            let weight = query.weight(&*searcher, true).unwrap();
+            let scorer = weight.scorer(searcher.segment_reader(0u32)).unwrap();
+            assert!(Downcast::<Intersection<Box<Scorer>>>::is_type(&*scorer));
+        }
+    }
+
+    #[test]
+    pub fn test_boolean_reqopt() {
+        let (index, text_field) = aux_test_helper();
+        let query_parser = QueryParser::for_index(&index, vec![text_field]);
+        let searcher = index.searcher();
+        {
+            let query = query_parser.parse_query("+a b").unwrap();
+            let weight = query.weight(&*searcher, true).unwrap();
+            let scorer = weight.scorer(searcher.segment_reader(0u32)).unwrap();
+            assert!(Downcast::<RequiredOptionalScorer<Box<Scorer>, Box<Scorer>, SumWithCoordsCombiner>>::is_type(&*scorer));
+        }
+        {
+            let query = query_parser.parse_query("+a b").unwrap();
+            let weight = query.weight(&*searcher, false).unwrap();
+            let scorer = weight.scorer(searcher.segment_reader(0u32)).unwrap();
+            assert!(Downcast::<TermScorer>::is_type(&*scorer));
+        }
+    }
+
     #[test]
     pub fn test_boolean_query() {
 
diff --git a/master/src/tantivy/query/query_parser/query_grammar.rs.html b/master/src/tantivy/query/query_parser/query_grammar.rs.html
index de0a62e28..03dc5e7c0 100644
--- a/master/src/tantivy/query/query_parser/query_grammar.rs.html
+++ b/master/src/tantivy/query/query_parser/query_grammar.rs.html
@@ -148,6 +148,7 @@
 92
 93
 94
+95
 
 use combine::*;
 use combine::char::*;
@@ -192,10 +193,10 @@
 where
     I: Stream<Item = char>,
 {
-    (char('-'), parser(literal)).map(|(_, expr)| UserInputAST::Not(box expr))
-        .or((char('+'), parser(literal)).map(|(_, expr)| UserInputAST::Must(box expr)))
-        .or(parser(literal))
+    (char('-'), parser(leaf)).map(|(_, expr)| UserInputAST::Not(box expr))
+        .or((char('+'), parser(leaf)).map(|(_, expr)| UserInputAST::Must(box expr)))
         .or((char('('), parser(parse_to_ast), char(')')).map(|(_, expr, _)| expr))
+        .or(parser(literal))
         .parse_stream(input)
 }
 
@@ -231,6 +232,7 @@
 
     #[test]
     fn test_parse_query_to_ast() {
+        test_parse_query_to_ast_helper("+(a b) +d", "(+((\"a\" \"b\")) +(\"d\"))");
         test_parse_query_to_ast_helper("(+a +b) d", "((+(\"a\") +(\"b\")) \"d\")");
         test_parse_query_to_ast_helper("(+a)", "+(\"a\")");
         test_parse_query_to_ast_helper("(+a +b)", "(+(\"a\") +(\"b\"))");