You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by si...@apache.org on 2012/11/16 12:09:46 UTC

svn commit: r1410304 - in /lucene.net/trunk: src/core/QueryParser/MultiFieldQueryParser.cs test/core/QueryParser/TestMultiFieldQueryParser.cs

Author: sisve
Date: Fri Nov 16 11:09:46 2012
New Revision: 1410304

URL: http://svn.apache.org/viewvc?rev=1410304&view=rev
Log:
LUCENENET-513

Modified:
    lucene.net/trunk/src/core/QueryParser/MultiFieldQueryParser.cs
    lucene.net/trunk/test/core/QueryParser/TestMultiFieldQueryParser.cs

Modified: lucene.net/trunk/src/core/QueryParser/MultiFieldQueryParser.cs
URL: http://svn.apache.org/viewvc/lucene.net/trunk/src/core/QueryParser/MultiFieldQueryParser.cs?rev=1410304&r1=1410303&r2=1410304&view=diff
==============================================================================
--- lucene.net/trunk/src/core/QueryParser/MultiFieldQueryParser.cs (original)
+++ lucene.net/trunk/src/core/QueryParser/MultiFieldQueryParser.cs Fri Nov 16 11:09:46 2012
@@ -123,9 +123,10 @@ namespace Lucene.Net.QueryParsers
                         //If the user passes a map of boosts
                         if (boosts != null)
                         {
-                            //Get the boost from the map and apply them
-                            Single boost = boosts[fields[i]];
-                            q.Boost = boost;
+                            //Get the boost and apply them if exists
+                            Single boost;
+                            if (boosts.TryGetValue(fields[i], out boost))
+                                q.Boost = boost;
                         }
                         ApplySlop(q, slop);
                         clauses.Add(new BooleanClause(q, Occur.SHOULD));

Modified: lucene.net/trunk/test/core/QueryParser/TestMultiFieldQueryParser.cs
URL: http://svn.apache.org/viewvc/lucene.net/trunk/test/core/QueryParser/TestMultiFieldQueryParser.cs?rev=1410304&r1=1410303&r2=1410304&view=diff
==============================================================================
--- lucene.net/trunk/test/core/QueryParser/TestMultiFieldQueryParser.cs (original)
+++ lucene.net/trunk/test/core/QueryParser/TestMultiFieldQueryParser.cs Fri Nov 16 11:09:46 2012
@@ -305,6 +305,23 @@ namespace Lucene.Net.QueryParsers
 			Assert.AreEqual(1, hits.Length);
 			is_Renamed.Close();
 		}
+
+        [Test(Description = "LUCENENET-513")]
+        public virtual void TestParsingQueryWithoutBoosts()
+        {
+            var analyzer = new StandardAnalyzer(Util.Version.LUCENE_CURRENT);
+            var fields = new[] {"f1", "f2"};
+            var boosts = new Dictionary<String, Single>
+                {
+                    {"f1", 2}
+                    // missing f2 intentional
+                };
+
+            var parser = new MultiFieldQueryParser(Util.Version.LUCENE_CURRENT, fields, analyzer, boosts);
+            var query = parser.Parse("bazinga");
+
+            Assert.AreEqual("f1:bazinga^2.0 f2:bazinga", query.ToString());
+        }
 		
 		/// <summary> Return empty tokens for field "f1".</summary>
 		private class AnalyzerReturningNull:Analyzer