Lucene.Net.Queries, Lucene.Net.Tests.Queries: Marked lucene compatibility version 4.8.1 at the top of each file. (#259)
diff --git a/src/Lucene.Net.Queries/BooleanFilter.cs b/src/Lucene.Net.Queries/BooleanFilter.cs
index 24caf4a..7f0601c 100644
--- a/src/Lucene.Net.Queries/BooleanFilter.cs
+++ b/src/Lucene.Net.Queries/BooleanFilter.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Diagnostics;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Diagnostics;
using Lucene.Net.Index;
using Lucene.Net.Search;
using Lucene.Net.Util;
diff --git a/src/Lucene.Net.Queries/BoostingQuery.cs b/src/Lucene.Net.Queries/BoostingQuery.cs
index 7a6c142..3680992 100644
--- a/src/Lucene.Net.Queries/BoostingQuery.cs
+++ b/src/Lucene.Net.Queries/BoostingQuery.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Search;
namespace Lucene.Net.Queries
diff --git a/src/Lucene.Net.Queries/ChainedFilter.cs b/src/Lucene.Net.Queries/ChainedFilter.cs
index a9c43f9..045f9da 100644
--- a/src/Lucene.Net.Queries/ChainedFilter.cs
+++ b/src/Lucene.Net.Queries/ChainedFilter.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Search;
using Lucene.Net.Util;
using System;
diff --git a/src/Lucene.Net.Queries/CommonTermsQuery.cs b/src/Lucene.Net.Queries/CommonTermsQuery.cs
index 69ed7e0..01fd666 100644
--- a/src/Lucene.Net.Queries/CommonTermsQuery.cs
+++ b/src/Lucene.Net.Queries/CommonTermsQuery.cs
@@ -1,4 +1,5 @@
-using J2N.Collections.Generic.Extensions;
+// Lucene version compatibility level 4.8.1
+using J2N.Collections.Generic.Extensions;
using Lucene.Net.Diagnostics;
using Lucene.Net.Index;
using Lucene.Net.Search;
diff --git a/src/Lucene.Net.Queries/CustomScoreProvider.cs b/src/Lucene.Net.Queries/CustomScoreProvider.cs
index 3ad6f1e..d9d430f 100644
--- a/src/Lucene.Net.Queries/CustomScoreProvider.cs
+++ b/src/Lucene.Net.Queries/CustomScoreProvider.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Search;
namespace Lucene.Net.Queries
diff --git a/src/Lucene.Net.Queries/CustomScoreQuery.cs b/src/Lucene.Net.Queries/CustomScoreQuery.cs
index 18e3d84..243b6f8 100644
--- a/src/Lucene.Net.Queries/CustomScoreQuery.cs
+++ b/src/Lucene.Net.Queries/CustomScoreQuery.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function;
using Lucene.Net.Search;
using Lucene.Net.Support;
diff --git a/src/Lucene.Net.Queries/FilterClause.cs b/src/Lucene.Net.Queries/FilterClause.cs
index a288ca3..251e13f 100644
--- a/src/Lucene.Net.Queries/FilterClause.cs
+++ b/src/Lucene.Net.Queries/FilterClause.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Search;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Search;
namespace Lucene.Net.Queries
{
diff --git a/src/Lucene.Net.Queries/Function/BoostedQuery.cs b/src/Lucene.Net.Queries/Function/BoostedQuery.cs
index 844d02d..23464b7 100644
--- a/src/Lucene.Net.Queries/Function/BoostedQuery.cs
+++ b/src/Lucene.Net.Queries/Function/BoostedQuery.cs
@@ -1,4 +1,5 @@
-using J2N.Numerics;
+// Lucene version compatibility level 4.8.1
+using J2N.Numerics;
using Lucene.Net.Index;
using Lucene.Net.Search;
using Lucene.Net.Util;
diff --git a/src/Lucene.Net.Queries/Function/DocValues/BoolDocValues.cs b/src/Lucene.Net.Queries/Function/DocValues/BoolDocValues.cs
index dc9d43b..539853a 100644
--- a/src/Lucene.Net.Queries/Function/DocValues/BoolDocValues.cs
+++ b/src/Lucene.Net.Queries/Function/DocValues/BoolDocValues.cs
@@ -1,4 +1,5 @@
-using System;
+// Lucene version compatibility level 4.8.1
+using System;
using Lucene.Net.Util.Mutable;
namespace Lucene.Net.Queries.Function.DocValues
diff --git a/src/Lucene.Net.Queries/Function/DocValues/DocTermsIndexDocValues.cs b/src/Lucene.Net.Queries/Function/DocValues/DocTermsIndexDocValues.cs
index eb7c280..8178834 100644
--- a/src/Lucene.Net.Queries/Function/DocValues/DocTermsIndexDocValues.cs
+++ b/src/Lucene.Net.Queries/Function/DocValues/DocTermsIndexDocValues.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Search;
using Lucene.Net.Util;
using Lucene.Net.Util.Mutable;
diff --git a/src/Lucene.Net.Queries/Function/DocValues/DoubleDocValues.cs b/src/Lucene.Net.Queries/Function/DocValues/DoubleDocValues.cs
index 8ed8e0d..7477e8d 100644
--- a/src/Lucene.Net.Queries/Function/DocValues/DoubleDocValues.cs
+++ b/src/Lucene.Net.Queries/Function/DocValues/DoubleDocValues.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Util.Mutable;
using System;
using System.Globalization;
diff --git a/src/Lucene.Net.Queries/Function/DocValues/FloatDocValues.cs b/src/Lucene.Net.Queries/Function/DocValues/FloatDocValues.cs
index 0d8fe10..8d1f66e 100644
--- a/src/Lucene.Net.Queries/Function/DocValues/FloatDocValues.cs
+++ b/src/Lucene.Net.Queries/Function/DocValues/FloatDocValues.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Util.Mutable;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Util.Mutable;
using System;
using System.Globalization;
diff --git a/src/Lucene.Net.Queries/Function/DocValues/IntDocValues.cs b/src/Lucene.Net.Queries/Function/DocValues/IntDocValues.cs
index 58c8a05..9102b33 100644
--- a/src/Lucene.Net.Queries/Function/DocValues/IntDocValues.cs
+++ b/src/Lucene.Net.Queries/Function/DocValues/IntDocValues.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Util.Mutable;
using System;
using System.Globalization;
diff --git a/src/Lucene.Net.Queries/Function/DocValues/LongDocValues.cs b/src/Lucene.Net.Queries/Function/DocValues/LongDocValues.cs
index 6f204e2..929a5bb 100644
--- a/src/Lucene.Net.Queries/Function/DocValues/LongDocValues.cs
+++ b/src/Lucene.Net.Queries/Function/DocValues/LongDocValues.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Util.Mutable;
using System;
using System.Globalization;
diff --git a/src/Lucene.Net.Queries/Function/DocValues/StrDocValues.cs b/src/Lucene.Net.Queries/Function/DocValues/StrDocValues.cs
index 36d8089..767a40f 100644
--- a/src/Lucene.Net.Queries/Function/DocValues/StrDocValues.cs
+++ b/src/Lucene.Net.Queries/Function/DocValues/StrDocValues.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Util.Mutable;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Util.Mutable;
namespace Lucene.Net.Queries.Function.DocValues
{
diff --git a/src/Lucene.Net.Queries/Function/FunctionQuery.cs b/src/Lucene.Net.Queries/Function/FunctionQuery.cs
index 02b7fc7..0e37451 100644
--- a/src/Lucene.Net.Queries/Function/FunctionQuery.cs
+++ b/src/Lucene.Net.Queries/Function/FunctionQuery.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Search;
using Lucene.Net.Util;
using System.Collections;
diff --git a/src/Lucene.Net.Queries/Function/FunctionValues.cs b/src/Lucene.Net.Queries/Function/FunctionValues.cs
index 251a33e..71aebbf 100644
--- a/src/Lucene.Net.Queries/Function/FunctionValues.cs
+++ b/src/Lucene.Net.Queries/Function/FunctionValues.cs
@@ -1,4 +1,5 @@
-using System;
+// Lucene version compatibility level 4.8.1
+using System;
using System.Globalization;
using Lucene.Net.Index;
using Lucene.Net.Search;
diff --git a/src/Lucene.Net.Queries/Function/ValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSource.cs
index 26f5cd5..e075efb 100644
--- a/src/Lucene.Net.Queries/Function/ValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSource.cs
@@ -1,4 +1,5 @@
-using J2N.Runtime.CompilerServices;
+// Lucene version compatibility level 4.8.1
+using J2N.Runtime.CompilerServices;
using Lucene.Net.Index;
using Lucene.Net.Search;
using System;
diff --git a/src/Lucene.Net.Queries/Function/ValueSourceScorer.cs b/src/Lucene.Net.Queries/Function/ValueSourceScorer.cs
index 24cdbba..78528ed 100644
--- a/src/Lucene.Net.Queries/Function/ValueSourceScorer.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSourceScorer.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Search;
using Lucene.Net.Util;
using System;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/BoolFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/BoolFunction.cs
index 3470fb3..fac6947 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/BoolFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/BoolFunction.cs
@@ -1,4 +1,6 @@
-namespace Lucene.Net.Queries.Function.ValueSources
+// Lucene version compatibility level 4.8.1
+
+namespace Lucene.Net.Queries.Function.ValueSources
{
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/ByteFieldSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/ByteFieldSource.cs
index 5279ffe..2597644 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/ByteFieldSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/ByteFieldSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Search;
using System;
using System.Collections;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/BytesRefFieldSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/BytesRefFieldSource.cs
index 1903796..21b8150 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/BytesRefFieldSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/BytesRefFieldSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Util;
using System.Collections;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/ConstNumberSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/ConstNumberSource.cs
index 3a33ae7..d8d0aa3 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/ConstNumberSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/ConstNumberSource.cs
@@ -1,4 +1,6 @@
-namespace Lucene.Net.Queries.Function.ValueSources
+// Lucene version compatibility level 4.8.1
+
+namespace Lucene.Net.Queries.Function.ValueSources
{
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/ConstValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/ConstValueSource.cs
index 607bd57..7c8fa1d 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/ConstValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/ConstValueSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using System.Collections;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/DefFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/DefFunction.cs
index b12c4c8..aff62e2 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/DefFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/DefFunction.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Util;
using System.Collections;
using System.Collections.Generic;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/DivFloatFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/DivFloatFunction.cs
index 20b91c6..b8a4c3c 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/DivFloatFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/DivFloatFunction.cs
@@ -1,4 +1,6 @@
-namespace Lucene.Net.Queries.Function.ValueSources
+// Lucene version compatibility level 4.8.1
+
+namespace Lucene.Net.Queries.Function.ValueSources
{
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/DocFreqValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/DocFreqValueSource.cs
index f277a97..9d40d9f 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/DocFreqValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/DocFreqValueSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using Lucene.Net.Util;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/DoubleConstValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/DoubleConstValueSource.cs
index f7b8d02..1f4f5e6 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/DoubleConstValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/DoubleConstValueSource.cs
@@ -1,4 +1,5 @@
-using J2N.Numerics;
+// Lucene version compatibility level 4.8.1
+using J2N.Numerics;
using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using System;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/DoubleFieldSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/DoubleFieldSource.cs
index a823e52..55dd2f8 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/DoubleFieldSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/DoubleFieldSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using Lucene.Net.Util;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/DualFloatFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/DualFloatFunction.cs
index fc69e47..c842d3a 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/DualFloatFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/DualFloatFunction.cs
@@ -1,4 +1,5 @@
-using J2N.Numerics;
+// Lucene version compatibility level 4.8.1
+using J2N.Numerics;
using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/EnumFieldSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/EnumFieldSource.cs
index c1dc8ef..dceac9e 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/EnumFieldSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/EnumFieldSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using Lucene.Net.Util;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/FieldCacheSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/FieldCacheSource.cs
index a8ec5c3..e9ce82c 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/FieldCacheSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/FieldCacheSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Search;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Search;
using System;
namespace Lucene.Net.Queries.Function.ValueSources
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/FloatFieldSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/FloatFieldSource.cs
index f09a127..bb245c0 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/FloatFieldSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/FloatFieldSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using Lucene.Net.Util;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/IDFValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/IDFValueSource.cs
index 7d2da72..e64c3c3 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/IDFValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/IDFValueSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Search;
using Lucene.Net.Search.Similarities;
using Lucene.Net.Support;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/IfFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/IfFunction.cs
index 2c13413..ee1609f 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/IfFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/IfFunction.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Search;
using Lucene.Net.Util;
using System.Collections;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/IntFieldSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/IntFieldSource.cs
index ac11ed0..d48b2a1 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/IntFieldSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/IntFieldSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using Lucene.Net.Util;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/JoinDocFreqValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/JoinDocFreqValueSource.cs
index 9054c0d..76b42e1 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/JoinDocFreqValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/JoinDocFreqValueSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Util;
using Lucene.Net.Util.Packed;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/LinearFloatFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/LinearFloatFunction.cs
index 2a08aa6..7b3d1bf 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/LinearFloatFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/LinearFloatFunction.cs
@@ -1,4 +1,5 @@
-using J2N.Numerics;
+// Lucene version compatibility level 4.8.1
+using J2N.Numerics;
using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/LiteralValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/LiteralValueSource.cs
index 2dd7b38..8b792fd 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/LiteralValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/LiteralValueSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Util;
using System;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/LongFieldSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/LongFieldSource.cs
index 3d6653c..cb73a87 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/LongFieldSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/LongFieldSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using Lucene.Net.Util;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/MaxDocValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/MaxDocValueSource.cs
index cf7d616..0db04f5 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/MaxDocValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/MaxDocValueSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Search;
using System.Collections;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/MaxFloatFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/MaxFloatFunction.cs
index b68cee3..4f21942 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/MaxFloatFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/MaxFloatFunction.cs
@@ -1,4 +1,5 @@
-using System;
+// Lucene version compatibility level 4.8.1
+using System;
namespace Lucene.Net.Queries.Function.ValueSources
{
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/MinFloatFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/MinFloatFunction.cs
index eab6c2d..6391993 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/MinFloatFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/MinFloatFunction.cs
@@ -1,4 +1,5 @@
-using System;
+// Lucene version compatibility level 4.8.1
+using System;
namespace Lucene.Net.Queries.Function.ValueSources
{
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/MultiBoolFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/MultiBoolFunction.cs
index 19bf4fe..0a859ef 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/MultiBoolFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/MultiBoolFunction.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using System.Collections;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/MultiFloatFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/MultiFloatFunction.cs
index aaa0bbb..96e8581 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/MultiFloatFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/MultiFloatFunction.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using Lucene.Net.Support;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/MultiFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/MultiFunction.cs
index e78e041..623e101 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/MultiFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/MultiFunction.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Search;
using System.Collections;
using System.Collections.Generic;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/MultiValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/MultiValueSource.cs
index 08c8d51..5b83eeb 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/MultiValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/MultiValueSource.cs
@@ -1,4 +1,6 @@
-namespace Lucene.Net.Queries.Function.ValueSources
+// Lucene version compatibility level 4.8.1
+
+namespace Lucene.Net.Queries.Function.ValueSources
{
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/NormValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/NormValueSource.cs
index d8e6deb..6a270ab 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/NormValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/NormValueSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using Lucene.Net.Search.Similarities;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/NumDocsValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/NumDocsValueSource.cs
index de5467f..f6749fe 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/NumDocsValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/NumDocsValueSource.cs
@@ -1,4 +1,5 @@
-using System.Collections;
+// Lucene version compatibility level 4.8.1
+using System.Collections;
using Lucene.Net.Index;
namespace Lucene.Net.Queries.Function.ValueSources
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/OrdFieldSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/OrdFieldSource.cs
index 8bdc8d9..69fcf33 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/OrdFieldSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/OrdFieldSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using Lucene.Net.Util.Mutable;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/PowFloatFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/PowFloatFunction.cs
index 2328bfe..0108f45 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/PowFloatFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/PowFloatFunction.cs
@@ -1,4 +1,5 @@
-using System;
+// Lucene version compatibility level 4.8.1
+using System;
namespace Lucene.Net.Queries.Function.ValueSources
{
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/ProductFloatFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/ProductFloatFunction.cs
index a42e4e7..9b06801 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/ProductFloatFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/ProductFloatFunction.cs
@@ -1,4 +1,6 @@
-namespace Lucene.Net.Queries.Function.ValueSources
+// Lucene version compatibility level 4.8.1
+
+namespace Lucene.Net.Queries.Function.ValueSources
{
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/QueryValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/QueryValueSource.cs
index 598536f..cb72e98 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/QueryValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/QueryValueSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using Lucene.Net.Util;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/RangeMapFloatFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/RangeMapFloatFunction.cs
index 03389c6..5b436ca 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/RangeMapFloatFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/RangeMapFloatFunction.cs
@@ -1,4 +1,5 @@
-using J2N.Numerics;
+// Lucene version compatibility level 4.8.1
+using J2N.Numerics;
using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/ReciprocalFloatFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/ReciprocalFloatFunction.cs
index e5bbb32..3e44146 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/ReciprocalFloatFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/ReciprocalFloatFunction.cs
@@ -1,4 +1,5 @@
-using J2N.Numerics;
+// Lucene version compatibility level 4.8.1
+using J2N.Numerics;
using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/ReverseOrdFieldSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/ReverseOrdFieldSource.cs
index 75c5f48..6e98b73 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/ReverseOrdFieldSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/ReverseOrdFieldSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using System;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/ScaleFloatFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/ScaleFloatFunction.cs
index e7d5584..0d33b05 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/ScaleFloatFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/ScaleFloatFunction.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using System.Collections;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/ShortFieldSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/ShortFieldSource.cs
index 4131649..6e219b2 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/ShortFieldSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/ShortFieldSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Search;
using System;
using System.Collections;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/SimpleBoolFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/SimpleBoolFunction.cs
index 0fc2a94..8c233b1 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/SimpleBoolFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/SimpleBoolFunction.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using System.Collections;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/SimpleFloatFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/SimpleFloatFunction.cs
index bf0a48c..3f3da4d 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/SimpleFloatFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/SimpleFloatFunction.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using System.Collections;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/SingleFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/SingleFunction.cs
index 5de2beb..a06fd4a 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/SingleFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/SingleFunction.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Search;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Search;
using System;
using System.Collections;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/SumFloatFunction.cs b/src/Lucene.Net.Queries/Function/ValueSources/SumFloatFunction.cs
index befdae8..cdb9915 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/SumFloatFunction.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/SumFloatFunction.cs
@@ -1,4 +1,6 @@
-namespace Lucene.Net.Queries.Function.ValueSources
+// Lucene version compatibility level 4.8.1
+
+namespace Lucene.Net.Queries.Function.ValueSources
{
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/SumTotalTermFreqValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/SumTotalTermFreqValueSource.cs
index 60c72a2..c02d255 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/SumTotalTermFreqValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/SumTotalTermFreqValueSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using System;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/TFValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/TFValueSource.cs
index 000403b..d1173d2 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/TFValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/TFValueSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using Lucene.Net.Search.Similarities;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/TermFreqValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/TermFreqValueSource.cs
index 64fec78..39d217b 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/TermFreqValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/TermFreqValueSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using Lucene.Net.Util;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/TotalTermFreqValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/TotalTermFreqValueSource.cs
index 38d6213..6c7200d 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/TotalTermFreqValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/TotalTermFreqValueSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries.Function.DocValues;
using Lucene.Net.Search;
using Lucene.Net.Util;
diff --git a/src/Lucene.Net.Queries/Function/ValueSources/VectorValueSource.cs b/src/Lucene.Net.Queries/Function/ValueSources/VectorValueSource.cs
index 3417447..5f5ca5c 100644
--- a/src/Lucene.Net.Queries/Function/ValueSources/VectorValueSource.cs
+++ b/src/Lucene.Net.Queries/Function/ValueSources/VectorValueSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Search;
using System.Collections;
using System.Collections.Generic;
diff --git a/src/Lucene.Net.Queries/Mlt/MoreLikeThis.cs b/src/Lucene.Net.Queries/Mlt/MoreLikeThis.cs
index fab5b4e..c4c5c0b 100644
--- a/src/Lucene.Net.Queries/Mlt/MoreLikeThis.cs
+++ b/src/Lucene.Net.Queries/Mlt/MoreLikeThis.cs
@@ -1,4 +1,5 @@
-using J2N.Collections.Generic.Extensions;
+// Lucene version compatibility level 4.8.1
+using J2N.Collections.Generic.Extensions;
using Lucene.Net.Analysis;
using Lucene.Net.Analysis.TokenAttributes;
using Lucene.Net.Documents;
diff --git a/src/Lucene.Net.Queries/Mlt/MoreLikeThisQuery.cs b/src/Lucene.Net.Queries/Mlt/MoreLikeThisQuery.cs
index 337c77e..b741d43 100644
--- a/src/Lucene.Net.Queries/Mlt/MoreLikeThisQuery.cs
+++ b/src/Lucene.Net.Queries/Mlt/MoreLikeThisQuery.cs
@@ -1,4 +1,5 @@
-/*
+// Lucene version compatibility level 4.8.1
+/*
* Created on 25-Jan-2006
*/
using Lucene.Net.Analysis;
diff --git a/src/Lucene.Net.Queries/TermFilter.cs b/src/Lucene.Net.Queries/TermFilter.cs
index 9217e5f..f8f1c1e 100644
--- a/src/Lucene.Net.Queries/TermFilter.cs
+++ b/src/Lucene.Net.Queries/TermFilter.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Search;
using Lucene.Net.Util;
using System;
diff --git a/src/Lucene.Net.Queries/TermsFilter.cs b/src/Lucene.Net.Queries/TermsFilter.cs
index 960b894..c0f9c91 100644
--- a/src/Lucene.Net.Queries/TermsFilter.cs
+++ b/src/Lucene.Net.Queries/TermsFilter.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Search;
using Lucene.Net.Support;
using Lucene.Net.Util;
diff --git a/src/Lucene.Net.Tests.Queries/BooleanFilterTest.cs b/src/Lucene.Net.Tests.Queries/BooleanFilterTest.cs
index b4159a5..6a80a34 100644
--- a/src/Lucene.Net.Tests.Queries/BooleanFilterTest.cs
+++ b/src/Lucene.Net.Tests.Queries/BooleanFilterTest.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Analysis;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Analysis;
using Lucene.Net.Documents;
using Lucene.Net.Index;
using Lucene.Net.Queries;
@@ -42,6 +43,7 @@
#endif
Random, directory, new MockAnalyzer(Random, MockTokenizer.WHITESPACE, false));
+ //Add series of docs with filterable fields : acces rights, prices, dates and "in-stock" flags
AddDoc(writer, @"admin guest", @"010", @"20040101", @"Y");
AddDoc(writer, @"guest", @"020", @"20040101", @"Y");
AddDoc(writer, @"guest", @"020", @"20050101", @"Y");
@@ -87,23 +89,23 @@
private Filter GetEmptyFilter()
{
- return new AnonymousFilter();
+ return new FilterAnonymousClass();
}
- private sealed class AnonymousFilter : Filter
+ private sealed class FilterAnonymousClass : Filter
{
public override DocIdSet GetDocIdSet(AtomicReaderContext context, IBits acceptDocs)
{
- return new FixedBitSet(context.AtomicReader.MaxDoc);
+ return new FixedBitSet(context.Reader.MaxDoc);
}
}
private Filter GetNullDISFilter()
{
- return new AnonymousFilter1();
+ return new FilterAnonymousClass1();
}
- private sealed class AnonymousFilter1 : Filter
+ private sealed class FilterAnonymousClass1 : Filter
{
public override DocIdSet GetDocIdSet(AtomicReaderContext context, IBits acceptDocs)
{
@@ -113,10 +115,10 @@
private Filter GetNullDISIFilter()
{
- return new AnonymousFilter2();
+ return new FilterAnonymousClass2();
}
- private sealed class AnonymousDocIdSet : DocIdSet
+ private sealed class DocIdSetAnonymousClass : DocIdSet
{
public override DocIdSetIterator GetIterator()
{
@@ -126,11 +128,11 @@
public override bool IsCacheable => true;
}
- private sealed class AnonymousFilter2 : Filter
+ private sealed class FilterAnonymousClass2 : Filter
{
public override DocIdSet GetDocIdSet(AtomicReaderContext context, IBits acceptDocs)
{
- return new AnonymousDocIdSet();
+ return new DocIdSetAnonymousClass();
}
}
@@ -156,6 +158,8 @@
BooleanFilter booleanFilter = new BooleanFilter();
booleanFilter.Add(GetTermsFilter(@"price", @"030"), Occur.SHOULD);
TstFilterCard(@"Should retrieves only 1 doc", 1, booleanFilter);
+
+ // same with a real DISI (no OpenBitSetIterator)
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetWrappedTermQuery(@"price", @"030"), Occur.SHOULD);
TstFilterCard(@"Should retrieves only 1 doc", 1, booleanFilter);
@@ -178,13 +182,17 @@
booleanFilter.Add(GetRangeFilter(@"price", @"020", @"030"), Occur.SHOULD);
booleanFilter.Add(GetTermsFilter(@"inStock", @"N"), Occur.MUST_NOT);
TstFilterCard(@"Shoulds Ored but AndNot", 4, booleanFilter);
+
booleanFilter.Add(GetTermsFilter(@"inStock", @"Maybe"), Occur.MUST_NOT);
TstFilterCard(@"Shoulds Ored but AndNots", 3, booleanFilter);
+
+ // same with a real DISI (no OpenBitSetIterator)
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetRangeFilter(@"price", @"010", @"020"), Occur.SHOULD);
booleanFilter.Add(GetRangeFilter(@"price", @"020", @"030"), Occur.SHOULD);
booleanFilter.Add(GetWrappedTermQuery(@"inStock", @"N"), Occur.MUST_NOT);
TstFilterCard(@"Shoulds Ored but AndNot", 4, booleanFilter);
+
booleanFilter.Add(GetWrappedTermQuery(@"inStock", @"Maybe"), Occur.MUST_NOT);
TstFilterCard(@"Shoulds Ored but AndNots", 3, booleanFilter);
}
@@ -197,6 +205,8 @@
booleanFilter.Add(GetRangeFilter(@"price", @"020", @"030"), Occur.SHOULD);
booleanFilter.Add(GetTermsFilter(@"accessRights", @"admin"), Occur.MUST);
TstFilterCard(@"Shoulds Ored but MUST", 3, booleanFilter);
+
+ // same with a real DISI (no OpenBitSetIterator)
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetRangeFilter(@"price", @"010", @"020"), Occur.SHOULD);
booleanFilter.Add(GetRangeFilter(@"price", @"020", @"030"), Occur.SHOULD);
@@ -224,6 +234,8 @@
booleanFilter.Add(GetRangeFilter(@"date", @"20050101", @"20051231"), Occur.MUST);
booleanFilter.Add(GetTermsFilter(@"inStock", @"N"), Occur.MUST_NOT);
TstFilterCard(@"Shoulds Ored but MUSTs ANDED and MustNot", 0, booleanFilter);
+
+ // same with a real DISI (no OpenBitSetIterator)
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetRangeFilter(@"price", @"030", @"040"), Occur.SHOULD);
booleanFilter.Add(GetWrappedTermQuery(@"accessRights", @"admin"), Occur.MUST);
@@ -238,6 +250,8 @@
BooleanFilter booleanFilter = new BooleanFilter();
booleanFilter.Add(GetTermsFilter(@"accessRights", @"admin"), Occur.MUST);
TstFilterCard(@"MUST", 3, booleanFilter);
+
+ // same with a real DISI (no OpenBitSetIterator)
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetWrappedTermQuery(@"accessRights", @"admin"), Occur.MUST);
TstFilterCard(@"MUST", 3, booleanFilter);
@@ -249,6 +263,8 @@
BooleanFilter booleanFilter = new BooleanFilter();
booleanFilter.Add(GetTermsFilter(@"inStock", @"N"), Occur.MUST_NOT);
TstFilterCard(@"MUST_NOT", 4, booleanFilter);
+
+ // same with a real DISI (no OpenBitSetIterator)
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetWrappedTermQuery(@"inStock", @"N"), Occur.MUST_NOT);
TstFilterCard(@"MUST_NOT", 4, booleanFilter);
@@ -261,6 +277,8 @@
booleanFilter.Add(GetTermsFilter(@"inStock", @"N"), Occur.MUST);
booleanFilter.Add(GetTermsFilter(@"price", @"030"), Occur.MUST_NOT);
TstFilterCard(@"MUST_NOT wins over MUST for same docs", 0, booleanFilter);
+
+ // same with a real DISI (no OpenBitSetIterator)
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetWrappedTermQuery(@"inStock", @"N"), Occur.MUST);
booleanFilter.Add(GetWrappedTermQuery(@"price", @"030"), Occur.MUST_NOT);
@@ -281,22 +299,27 @@
booleanFilter.Add(GetTermsFilter(@"price", @"030"), Occur.MUST);
booleanFilter.Add(GetNullDISFilter(), Occur.MUST);
TstFilterCard(@"A MUST filter that returns a null DIS should never return documents", 0, booleanFilter);
+
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetTermsFilter(@"price", @"030"), Occur.MUST);
booleanFilter.Add(GetNullDISIFilter(), Occur.MUST);
TstFilterCard(@"A MUST filter that returns a null DISI should never return documents", 0, booleanFilter);
+
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetTermsFilter(@"price", @"030"), Occur.SHOULD);
booleanFilter.Add(GetNullDISFilter(), Occur.SHOULD);
TstFilterCard(@"A SHOULD filter that returns a null DIS should be invisible", 1, booleanFilter);
+
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetTermsFilter(@"price", @"030"), Occur.SHOULD);
booleanFilter.Add(GetNullDISIFilter(), Occur.SHOULD);
TstFilterCard(@"A SHOULD filter that returns a null DISI should be invisible", 1, booleanFilter);
+
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetTermsFilter(@"price", @"030"), Occur.MUST);
booleanFilter.Add(GetNullDISFilter(), Occur.MUST_NOT);
TstFilterCard(@"A MUST_NOT filter that returns a null DIS should be invisible", 1, booleanFilter);
+
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetTermsFilter(@"price", @"030"), Occur.MUST);
booleanFilter.Add(GetNullDISIFilter(), Occur.MUST_NOT);
@@ -309,18 +332,23 @@
BooleanFilter booleanFilter = new BooleanFilter();
booleanFilter.Add(GetNullDISFilter(), Occur.MUST);
TstFilterCard(@"A MUST filter that returns a null DIS should never return documents", 0, booleanFilter);
+
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetNullDISIFilter(), Occur.MUST);
TstFilterCard(@"A MUST filter that returns a null DISI should never return documents", 0, booleanFilter);
+
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetNullDISFilter(), Occur.SHOULD);
TstFilterCard(@"A single SHOULD filter that returns a null DIS should never return documents", 0, booleanFilter);
+
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetNullDISIFilter(), Occur.SHOULD);
TstFilterCard(@"A single SHOULD filter that returns a null DISI should never return documents", 0, booleanFilter);
+
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetNullDISFilter(), Occur.MUST_NOT);
TstFilterCard(@"A single MUST_NOT filter that returns a null DIS should be invisible", 5, booleanFilter);
+
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetNullDISIFilter(), Occur.MUST_NOT);
TstFilterCard(@"A single MUST_NOT filter that returns a null DIS should be invisible", 5, booleanFilter);
@@ -333,10 +361,12 @@
booleanFilter.Add(GetEmptyFilter(), Occur.SHOULD);
booleanFilter.Add(GetTermsFilter(@"accessRights", @"admin"), Occur.MUST);
TstFilterCard(@">0 shoulds with no matches should return no docs", 0, booleanFilter);
+
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetNullDISFilter(), Occur.SHOULD);
booleanFilter.Add(GetTermsFilter(@"accessRights", @"admin"), Occur.MUST);
TstFilterCard(@">0 shoulds with no matches should return no docs", 0, booleanFilter);
+
booleanFilter = new BooleanFilter();
booleanFilter.Add(GetNullDISIFilter(), Occur.SHOULD);
booleanFilter.Add(GetTermsFilter(@"accessRights", @"admin"), Occur.MUST);
@@ -349,6 +379,7 @@
BooleanFilter booleanFilter = new BooleanFilter();
booleanFilter.Add(GetTermsFilter(@"inStock", @"N"), Occur.MUST);
booleanFilter.Add(GetTermsFilter(@"isFragile", @"Y"), Occur.MUST);
+
assertEquals(@"BooleanFilter(+inStock:N +isFragile:Y)", booleanFilter.ToString());
}
@@ -356,14 +387,19 @@
public void TestToStringOfWrappedBooleanFilters()
{
BooleanFilter orFilter = new BooleanFilter();
+
BooleanFilter stockFilter = new BooleanFilter();
stockFilter.Add(new FilterClause(GetTermsFilter(@"inStock", @"Y"), Occur.MUST));
stockFilter.Add(new FilterClause(GetTermsFilter(@"barCode", @"12345678"), Occur.MUST));
+
orFilter.Add(new FilterClause(stockFilter, Occur.SHOULD));
+
BooleanFilter productPropertyFilter = new BooleanFilter();
productPropertyFilter.Add(new FilterClause(GetTermsFilter(@"isHeavy", @"N"), Occur.MUST));
productPropertyFilter.Add(new FilterClause(GetTermsFilter(@"isDamaged", @"Y"), Occur.MUST));
+
orFilter.Add(new FilterClause(productPropertyFilter, Occur.SHOULD));
+
BooleanFilter composedFilter = new BooleanFilter();
composedFilter.Add(new FilterClause(orFilter, Occur.MUST));
assertEquals(@"BooleanFilter(+BooleanFilter(BooleanFilter(+inStock:Y +barCode:12345678) BooleanFilter(+isHeavy:N +isDamaged:Y)))", composedFilter.ToString());
diff --git a/src/Lucene.Net.Tests.Queries/BoostingQueryTest.cs b/src/Lucene.Net.Tests.Queries/BoostingQueryTest.cs
index d890a26..56231d7 100644
--- a/src/Lucene.Net.Tests.Queries/BoostingQueryTest.cs
+++ b/src/Lucene.Net.Tests.Queries/BoostingQueryTest.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Index;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Index;
using Lucene.Net.Queries;
using Lucene.Net.Search;
using Lucene.Net.Util;
diff --git a/src/Lucene.Net.Tests.Queries/ChainedFilterTest.cs b/src/Lucene.Net.Tests.Queries/ChainedFilterTest.cs
index 5564420..6290fb4 100644
--- a/src/Lucene.Net.Tests.Queries/ChainedFilterTest.cs
+++ b/src/Lucene.Net.Tests.Queries/ChainedFilterTest.cs
@@ -1,4 +1,5 @@
-using System;
+// Lucene version compatibility level 4.8.1
+using System;
using System.Globalization;
using Lucene.Net.Documents;
using Lucene.Net.Index;
@@ -81,8 +82,10 @@
// just treat dates as strings and select the whole range for now...
dateFilter = TermRangeFilter.NewStringRange("date", "", "ZZZZ", true, true);
- bobFilter = new QueryWrapperFilter(new TermQuery(new Term("owner", "bob")));
- sueFilter = new QueryWrapperFilter(new TermQuery(new Term("owner", "sue")));
+ bobFilter = new QueryWrapperFilter(
+ new TermQuery(new Term("owner", "bob")));
+ sueFilter = new QueryWrapperFilter(
+ new TermQuery(new Term("owner", "sue")));
}
[TearDown]
@@ -136,7 +139,8 @@
[Test]
public virtual void TestOR()
{
- ChainedFilter chain = GetChainedFilter(new Filter[] { sueFilter, bobFilter }, null);
+ ChainedFilter chain = GetChainedFilter(
+ new Filter[] { sueFilter, bobFilter }, null);
int numHits = searcher.Search(query, chain, 1000).TotalHits;
assertEquals("OR matches all", Max, numHits);
@@ -145,7 +149,8 @@
[Test]
public virtual void TestAND()
{
- ChainedFilter chain = GetChainedFilter(new Filter[] { dateFilter, bobFilter }, ChainedFilter.AND);
+ ChainedFilter chain = GetChainedFilter(
+ new Filter[] { dateFilter, bobFilter }, ChainedFilter.AND);
TopDocs hits = searcher.Search(query, chain, 1000);
assertEquals("AND matches just bob", Max / 2, hits.TotalHits);
@@ -155,7 +160,8 @@
[Test]
public virtual void TestXOR()
{
- ChainedFilter chain = GetChainedFilter(new Filter[] { dateFilter, bobFilter }, ChainedFilter.XOR);
+ ChainedFilter chain = GetChainedFilter(
+ new Filter[] { dateFilter, bobFilter }, ChainedFilter.XOR);
TopDocs hits = searcher.Search(query, chain, 1000);
assertEquals("XOR matches sue", Max / 2, hits.TotalHits);
@@ -165,7 +171,8 @@
[Test]
public virtual void TestANDNOT()
{
- ChainedFilter chain = GetChainedFilter(new Filter[] { dateFilter, sueFilter }, new int[] { ChainedFilter.AND, ChainedFilter.ANDNOT });
+ ChainedFilter chain = GetChainedFilter(
+ new Filter[] { dateFilter, sueFilter }, new int[] { ChainedFilter.AND, ChainedFilter.ANDNOT });
TopDocs hits = searcher.Search(query, chain, 1000);
assertEquals("ANDNOT matches just bob", Max / 2, hits.TotalHits);
diff --git a/src/Lucene.Net.Tests.Queries/CommonTermsQueryTest.cs b/src/Lucene.Net.Tests.Queries/CommonTermsQueryTest.cs
index ddaf36f..822530e 100644
--- a/src/Lucene.Net.Tests.Queries/CommonTermsQueryTest.cs
+++ b/src/Lucene.Net.Tests.Queries/CommonTermsQueryTest.cs
@@ -1,4 +1,5 @@
-using System;
+// Lucene version compatibility level 4.8.1
+using System;
using System.Collections.Generic;
using Lucene.Net.Analysis;
using Lucene.Net.Documents;
@@ -43,7 +44,8 @@
Random, dir, analyzer);
var docs = new string[]
{
- @"this is the end of the world right", @"is this it or maybe not",
+ @"this is the end of the world right",
+ @"is this it or maybe not",
@"this is the end of the universe as we know it",
@"there is the famous restaurant at the end of the universe"
};
@@ -59,7 +61,7 @@
IndexReader r = w.GetReader();
IndexSearcher s = NewSearcher(r);
{
- CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD, Random.NextBoolean() ? 2F : 0.5F);
+ CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD, Random.NextBoolean() ? 2.0f : 0.5f);
query.Add(new Term("field", "is"));
query.Add(new Term("field", "this"));
query.Add(new Term("field", "end"));
@@ -73,8 +75,8 @@
assertEquals(@"3", r.Document(search.ScoreDocs[2].Doc).Get(@"id"));
}
- {
- CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD, Random.NextBoolean() ? 2F : 0.5F);
+ { // only high freq
+ CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD, Random.NextBoolean() ? 2.0f : 0.5f);
query.Add(new Term("field", "is"));
query.Add(new Term("field", "this"));
query.Add(new Term("field", "end"));
@@ -84,21 +86,23 @@
assertEquals(@"2", r.Document(search.ScoreDocs[1].Doc).Get(@"id"));
}
- {
- CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.MUST, Random.NextBoolean() ? 2F : 0.5F);
+ { // low freq is mandatory
+ CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.MUST, Random.NextBoolean() ? 2.0f : 0.5f);
query.Add(new Term("field", "is"));
query.Add(new Term("field", "this"));
query.Add(new Term("field", "end"));
query.Add(new Term("field", "world"));
+
TopDocs search = s.Search(query, 10);
assertEquals(search.TotalHits, 1);
assertEquals(@"0", r.Document(search.ScoreDocs[0].Doc).Get(@"id"));
}
- {
- CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.MUST, Random.NextBoolean() ? 2F : 0.5F);
+ { // low freq is mandatory
+ CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.MUST, Random.NextBoolean() ? 2.0f : 0.5f);
query.Add(new Term("field", "restaurant"));
query.Add(new Term("field", "universe"));
+
TopDocs search = s.Search(query, 10);
assertEquals(search.TotalHits, 1);
assertEquals(@"3", r.Document(search.ScoreDocs[0].Doc).Get(@"id"));
@@ -112,33 +116,40 @@
[Test]
public void TestEqualsHashCode()
{
- CommonTermsQuery query = new CommonTermsQuery(RandomOccur(Random), RandomOccur(Random), Random.NextSingle(), Random.NextBoolean());
+ CommonTermsQuery query = new CommonTermsQuery(RandomOccur(Random),
+ RandomOccur(Random), Random.NextSingle(), Random.NextBoolean());
int terms = AtLeast(2);
for (int i = 0; i < terms; i++)
{
- query.Add(new Term(TestUtil.RandomRealisticUnicodeString(Random), TestUtil.RandomRealisticUnicodeString(Random)));
+ query.Add(new Term(TestUtil.RandomRealisticUnicodeString(Random),
+ TestUtil.RandomRealisticUnicodeString(Random)));
}
QueryUtils.CheckHashEquals(query);
- QueryUtils.CheckUnequal(new CommonTermsQuery(RandomOccur(Random), RandomOccur(Random), Random.NextSingle(), Random.NextBoolean()), query);
+ QueryUtils.CheckUnequal(new CommonTermsQuery(RandomOccur(Random),
+ RandomOccur(Random), Random.NextSingle(), Random.NextBoolean()), query);
{
long seed = Random.NextInt64();
Random r = new Random((int)seed);
- CommonTermsQuery left = new CommonTermsQuery(RandomOccur(r), RandomOccur(r), r.NextSingle(), r.NextBoolean());
+ CommonTermsQuery left = new CommonTermsQuery(RandomOccur(r),
+ RandomOccur(r), r.NextSingle(), r.NextBoolean());
int leftTerms = AtLeast(r, 2);
for (int i = 0; i < leftTerms; i++)
{
- left.Add(new Term(TestUtil.RandomRealisticUnicodeString(r), TestUtil.RandomRealisticUnicodeString(r)));
+ left.Add(new Term(TestUtil.RandomRealisticUnicodeString(r),
+ TestUtil.RandomRealisticUnicodeString(r)));
}
left.HighFreqMinimumNumberShouldMatch = r.nextInt(4);
left.LowFreqMinimumNumberShouldMatch = r.nextInt(4);
r = new Random((int)seed);
- CommonTermsQuery right = new CommonTermsQuery(RandomOccur(r), RandomOccur(r), r.NextSingle(), r.NextBoolean());
+ CommonTermsQuery right = new CommonTermsQuery(RandomOccur(r),
+ RandomOccur(r), r.NextSingle(), r.NextBoolean());
int rightTerms = AtLeast(r, 2);
for (int i = 0; i < rightTerms; i++)
{
- right.Add(new Term(TestUtil.RandomRealisticUnicodeString(r), TestUtil.RandomRealisticUnicodeString(r)));
+ right.Add(new Term(TestUtil.RandomRealisticUnicodeString(r),
+ TestUtil.RandomRealisticUnicodeString(r)));
}
right.HighFreqMinimumNumberShouldMatch = r.nextInt(4);
@@ -156,7 +167,8 @@
public void TestNullTerm()
{
Random random = Random;
- CommonTermsQuery query = new CommonTermsQuery(RandomOccur(random), RandomOccur(random), Random.NextSingle());
+ CommonTermsQuery query = new CommonTermsQuery(RandomOccur(random),
+ RandomOccur(random), Random.NextSingle());
try
{
query.Add(null);
@@ -181,7 +193,8 @@
Random, dir, analyzer);
string[] docs = new string[]
{
- @"this is the end of the world right", @"is this it or maybe not",
+ @"this is the end of the world right",
+ @"is this it or maybe not",
@"this is the end of the universe as we know it",
@"there is the famous restaurant at the end of the universe"
};
@@ -197,42 +210,45 @@
IndexReader r = w.GetReader();
IndexSearcher s = NewSearcher(r);
{
- CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD, Random.NextBoolean() ? 2F : 0.5F);
+ CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD,
+ Random.NextBoolean() ? 2.0f : 0.5f);
query.Add(new Term("field", "is"));
query.Add(new Term("field", "this"));
query.Add(new Term("field", "end"));
query.Add(new Term("field", "world"));
query.Add(new Term("field", "universe"));
query.Add(new Term("field", "right"));
- query.LowFreqMinimumNumberShouldMatch = 0.5F;
+ query.LowFreqMinimumNumberShouldMatch = 0.5f;
TopDocs search = s.Search(query, 10);
assertEquals(search.TotalHits, 1);
assertEquals(@"0", r.Document(search.ScoreDocs[0].Doc).Get(@"id"));
}
{
- CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD, Random.NextBoolean() ? 2F : 0.5F);
+ CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD,
+ Random.NextBoolean() ? 2.0f : 0.5f);
query.Add(new Term("field", "is"));
query.Add(new Term("field", "this"));
query.Add(new Term("field", "end"));
query.Add(new Term("field", "world"));
query.Add(new Term("field", "universe"));
query.Add(new Term("field", "right"));
- query.LowFreqMinimumNumberShouldMatch = 2F;
+ query.LowFreqMinimumNumberShouldMatch = 2.0f;
TopDocs search = s.Search(query, 10);
assertEquals(search.TotalHits, 1);
assertEquals(@"0", r.Document(search.ScoreDocs[0].Doc).Get(@"id"));
}
{
- CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD, Random.NextBoolean() ? 2F : 0.5F);
+ CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD,
+ Random.NextBoolean() ? 2.0f : 0.5f);
query.Add(new Term("field", "is"));
query.Add(new Term("field", "this"));
query.Add(new Term("field", "end"));
query.Add(new Term("field", "world"));
query.Add(new Term("field", "universe"));
query.Add(new Term("field", "right"));
- query.LowFreqMinimumNumberShouldMatch = 0.49F;
+ query.LowFreqMinimumNumberShouldMatch = 0.49f;
TopDocs search = s.Search(query, 10);
assertEquals(search.TotalHits, 3);
assertEquals(@"0", r.Document(search.ScoreDocs[0].Doc).Get(@"id"));
@@ -241,14 +257,15 @@
}
{
- CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD, Random.NextBoolean() ? 2F : 0.5F);
+ CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD,
+ Random.NextBoolean() ? 2.0f : 0.5f);
query.Add(new Term("field", "is"));
query.Add(new Term("field", "this"));
query.Add(new Term("field", "end"));
query.Add(new Term("field", "world"));
query.Add(new Term("field", "universe"));
query.Add(new Term("field", "right"));
- query.LowFreqMinimumNumberShouldMatch = 1F;
+ query.LowFreqMinimumNumberShouldMatch = 1.0f;
TopDocs search = s.Search(query, 10);
assertEquals(search.TotalHits, 3);
assertEquals(@"0", r.Document(search.ScoreDocs[0].Doc).Get(@"id"));
@@ -258,48 +275,58 @@
}
{
- CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD, Random.NextBoolean() ? 2F : 0.5F);
+ CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD,
+ Random.NextBoolean() ? 2.0f : 0.5f);
query.Add(new Term("field", "is"));
query.Add(new Term("field", "this"));
query.Add(new Term("field", "end"));
query.Add(new Term("field", "world"));
query.Add(new Term("field", "universe"));
query.Add(new Term("field", "right"));
- query.LowFreqMinimumNumberShouldMatch = 1F;
- query.HighFreqMinimumNumberShouldMatch = 4F;
+ query.LowFreqMinimumNumberShouldMatch = 1.0f;
+ query.HighFreqMinimumNumberShouldMatch = 4.0f;
TopDocs search = s.Search(query, 10);
assertEquals(search.TotalHits, 3);
- assertEquals(search.ScoreDocs[1].Score, search.ScoreDocs[2].Score, 0F);
+ assertEquals(search.ScoreDocs[1].Score, search.ScoreDocs[2].Score, 0.0f);
assertEquals(@"0", r.Document(search.ScoreDocs[0].Doc).Get(@"id"));
+ // doc 2 and 3 only get a score from low freq terms
assertEquals(
new JCG.HashSet<string> { @"2", @"3" },
- new JCG.HashSet<string> { r.Document(search.ScoreDocs[1].Doc).Get(@"id"), r.Document(search.ScoreDocs[2].Doc).Get(@"id") },
+ new JCG.HashSet<string> {
+ r.Document(search.ScoreDocs[1].Doc).Get(@"id"),
+ r.Document(search.ScoreDocs[2].Doc).Get(@"id") },
aggressive: false);
}
{
- CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD, Random.NextBoolean() ? 2F : 0.5F);
+ // only high freq terms around - check that min should match is applied
+ CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD,
+ Random.NextBoolean() ? 2.0f : 0.5f);
query.Add(new Term("field", "is"));
query.Add(new Term("field", "this"));
query.Add(new Term("field", "the"));
- query.LowFreqMinimumNumberShouldMatch = 1F;
- query.HighFreqMinimumNumberShouldMatch = 2F;
+ query.LowFreqMinimumNumberShouldMatch = 1.0f;
+ query.HighFreqMinimumNumberShouldMatch = 2.0f;
TopDocs search = s.Search(query, 10);
assertEquals(search.TotalHits, 4);
}
{
- CommonTermsQuery query = new CommonTermsQuery(Occur.MUST, Occur.SHOULD, Random.NextBoolean() ? 2F : 0.5F);
+ // only high freq terms around - check that min should match is applied
+ CommonTermsQuery query = new CommonTermsQuery(Occur.MUST, Occur.SHOULD,
+ Random.NextBoolean() ? 2.0f : 0.5f);
query.Add(new Term("field", "is"));
query.Add(new Term("field", "this"));
query.Add(new Term("field", "the"));
- query.LowFreqMinimumNumberShouldMatch = 1F;
- query.HighFreqMinimumNumberShouldMatch = 2F;
+ query.LowFreqMinimumNumberShouldMatch = 1.0f;
+ query.HighFreqMinimumNumberShouldMatch = 2.0f;
TopDocs search = s.Search(query, 10);
assertEquals(search.TotalHits, 2);
assertEquals(
new JCG.HashSet<string> { @"0", @"2" },
- new JCG.HashSet<string> { r.Document(search.ScoreDocs[0].Doc).Get(@"id"), r.Document(search.ScoreDocs[1].Doc).Get(@"id") },
+ new JCG.HashSet<string> {
+ r.Document(search.ScoreDocs[0].Doc).Get(@"id"),
+ r.Document(search.ScoreDocs[1].Doc).Get(@"id") },
aggressive: false);
}
@@ -347,11 +374,11 @@
Random, dir, analyzer);
var docs = new string[]
{
- @"this is the end of the world right", @"is this it or maybe not",
+ @"this is the end of the world right",
+ @"is this it or maybe not",
@"this is the end of the universe as we know it",
@"there is the famous restaurant at the end of the universe"
};
-
for (int i = 0; i < docs.Length; i++)
{
Document doc = new Document();
@@ -363,7 +390,8 @@
IndexReader r = w.GetReader();
IndexSearcher s = NewSearcher(r);
{
- CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD, Random.NextBoolean() ? 2F : 0.5F);
+ CommonTermsQuery query = new CommonTermsQuery(Occur.SHOULD, Occur.SHOULD,
+ Random.NextBoolean() ? 2.0f : 0.5f);
query.Add(new Term("field", "is"));
query.Add(new Term("field", "this"));
query.Add(new Term("field", "end"));
@@ -378,7 +406,9 @@
}
{
- CommonTermsQuery query = new ExtendedCommonTermsQuery(Occur.SHOULD, Occur.SHOULD, Random.NextBoolean() ? 2F : 0.5F);
+ // this one boosts the termQuery("field" "universe") by 10x
+ CommonTermsQuery query = new ExtendedCommonTermsQuery(Occur.SHOULD, Occur.SHOULD,
+ Random.NextBoolean() ? 2.0f : 0.5f);
query.Add(new Term("field", "is"));
query.Add(new Term("field", "this"));
query.Add(new Term("field", "end"));
@@ -413,8 +443,8 @@
AtomicReader wrapper = SlowCompositeReaderWrapper.Wrap(reader);
string field = @"body";
Terms terms = wrapper.GetTerms(field);
- var lowFreqQueue = new AnonymousPriorityQueue(5);
- Util.PriorityQueue<TermAndFreq> highFreqQueue = new AnonymousPriorityQueue1(5);
+ var lowFreqQueue = new PriorityQueueAnonymousClass(5);
+ var highFreqQueue = new PriorityQueueAnonymousClass1(5);
try
{
TermsEnum iterator = terms.GetEnumerator();
@@ -422,8 +452,10 @@
{
if (highFreqQueue.Count < 5)
{
- highFreqQueue.Add(new TermAndFreq(BytesRef.DeepCopyOf(iterator.Term), iterator.DocFreq));
- lowFreqQueue.Add(new TermAndFreq(BytesRef.DeepCopyOf(iterator.Term), iterator.DocFreq));
+ highFreqQueue.Add(new TermAndFreq(
+ BytesRef.DeepCopyOf(iterator.Term), iterator.DocFreq));
+ lowFreqQueue.Add(new TermAndFreq(
+ BytesRef.DeepCopyOf(iterator.Term), iterator.DocFreq));
}
else
{
@@ -448,22 +480,25 @@
AssumeTrue(@"unlucky index", highFreq - 1 > lowFreq);
List<TermAndFreq> highTerms = QueueToList(highFreqQueue);
List<TermAndFreq> lowTerms = QueueToList(lowFreqQueue);
+
IndexSearcher searcher = NewSearcher(reader);
Occur lowFreqOccur = RandomOccur(Random);
BooleanQuery verifyQuery = new BooleanQuery();
- CommonTermsQuery cq = new CommonTermsQuery(RandomOccur(Random), lowFreqOccur, highFreq - 1, Random.NextBoolean());
+ CommonTermsQuery cq = new CommonTermsQuery(RandomOccur(Random),
+ lowFreqOccur, highFreq - 1, Random.NextBoolean());
foreach (TermAndFreq termAndFreq in lowTerms)
{
cq.Add(new Term(field, termAndFreq.term));
- verifyQuery.Add(new BooleanClause(new TermQuery(new Term(field, termAndFreq.term)), lowFreqOccur));
+ verifyQuery.Add(new BooleanClause(new TermQuery(new Term(field,
+ termAndFreq.term)), lowFreqOccur));
}
-
foreach (TermAndFreq termAndFreq in highTerms)
{
cq.Add(new Term(field, termAndFreq.term));
}
TopDocs cqSearch = searcher.Search(cq, reader.MaxDoc);
+
TopDocs verifySearch = searcher.Search(verifyQuery, reader.MaxDoc);
assertEquals(verifySearch.TotalHits, cqSearch.TotalHits);
var hits = new JCG.HashSet<int>();
@@ -478,6 +513,13 @@
}
assertTrue(hits.Count == 0);
+
+ /*
+ * need to force merge here since QueryUtils adds checks based
+ * on leave readers which have different statistics than the top
+ * level reader if we have more than one segment. This could
+ * result in a different query / results.
+ */
w.ForceMerge(1);
DirectoryReader reader2 = w.GetReader();
QueryUtils.Check(
@@ -496,9 +538,9 @@
}
}
- private sealed class AnonymousPriorityQueue : Util.PriorityQueue<TermAndFreq>
+ private sealed class PriorityQueueAnonymousClass : Util.PriorityQueue<TermAndFreq>
{
- public AnonymousPriorityQueue(int maxSize)
+ public PriorityQueueAnonymousClass(int maxSize)
: base(maxSize)
{
}
@@ -509,9 +551,9 @@
}
}
- private sealed class AnonymousPriorityQueue1 : Util.PriorityQueue<TermAndFreq>
+ private sealed class PriorityQueueAnonymousClass1 : Util.PriorityQueue<TermAndFreq>
{
- public AnonymousPriorityQueue1(int maxSize)
+ public PriorityQueueAnonymousClass1(int maxSize)
: base(maxSize)
{
}
@@ -550,11 +592,19 @@
}
}
+ /// <summary>
+ /// populates a writer with random stuff. this must be fully reproducable with
+ /// the seed!
+ /// </summary>
public static void CreateRandomIndex(int numdocs, RandomIndexWriter writer, long seed)
{
Random random = new Random((int)seed);
// primary source for our data is from linefiledocs, its realistic.
LineFileDocs lineFileDocs = new LineFileDocs(random, false); // no docvalues in 4x
+
+ // TODO: we should add other fields that use things like docs&freqs but omit
+ // positions,
+ // because linefiledocs doesn't cover all the possibilities.
for (int i = 0; i < numdocs; i++)
{
writer.AddDocument(lineFileDocs.NextDoc());
@@ -575,7 +625,7 @@
Query query = base.NewTermQuery(term, context);
if (term.Text().Equals(@"universe", StringComparison.Ordinal))
{
- query.Boost = 100F;
+ query.Boost = 100f;
}
return query;
diff --git a/src/Lucene.Net.Tests.Queries/Function/FunctionTestSetup.cs b/src/Lucene.Net.Tests.Queries/Function/FunctionTestSetup.cs
index e4f3737..c445a72 100644
--- a/src/Lucene.Net.Tests.Queries/Function/FunctionTestSetup.cs
+++ b/src/Lucene.Net.Tests.Queries/Function/FunctionTestSetup.cs
@@ -1,4 +1,5 @@
-using System;
+// Lucene version compatibility level 4.8.1
+using System;
using Lucene.Net.Analysis;
using Lucene.Net.Documents;
using Lucene.Net.Index;
@@ -39,22 +40,22 @@
/// Actual score computation order is slightly different than assumptios
/// this allows for a small amount of variation
/// </summary>
- protected internal static float TEST_SCORE_TOLERANCE_DELTA = 0.001f;
+ protected const float TEST_SCORE_TOLERANCE_DELTA = 0.001f;
- protected internal const int N_DOCS = 17; // select a primary number > 2
+ protected const int N_DOCS = 17; // select a primary number > 2
- protected internal const string ID_FIELD = "id";
- protected internal const string TEXT_FIELD = "text";
- protected internal const string INT_FIELD = "iii";
- protected internal const string FLOAT_FIELD = "fff";
+ protected const string ID_FIELD = "id";
+ protected const string TEXT_FIELD = "text";
+ protected const string INT_FIELD = "iii";
+ protected const string FLOAT_FIELD = "fff";
#pragma warning disable 612, 618
- protected internal ValueSource BYTE_VALUESOURCE = new ByteFieldSource(INT_FIELD);
- protected internal ValueSource SHORT_VALUESOURCE = new Int16FieldSource(INT_FIELD);
+ protected ValueSource BYTE_VALUESOURCE = new ByteFieldSource(INT_FIELD);
+ protected ValueSource SHORT_VALUESOURCE = new Int16FieldSource(INT_FIELD);
#pragma warning restore 612, 618
- protected internal ValueSource INT_VALUESOURCE = new Int32FieldSource(INT_FIELD);
- protected internal ValueSource INT_AS_FLOAT_VALUESOURCE = new SingleFieldSource(INT_FIELD);
- protected internal ValueSource FLOAT_VALUESOURCE = new SingleFieldSource(FLOAT_FIELD);
+ protected ValueSource INT_VALUESOURCE = new Int32FieldSource(INT_FIELD);
+ protected ValueSource INT_AS_FLOAT_VALUESOURCE = new SingleFieldSource(INT_FIELD);
+ protected ValueSource FLOAT_VALUESOURCE = new SingleFieldSource(FLOAT_FIELD);
private static readonly string[] DOC_TEXT_LINES =
{
@@ -74,8 +75,8 @@
"text for the test, but oh much much safer. "
};
- protected internal static Directory dir;
- protected internal static Analyzer anlzr;
+ protected static Directory dir;
+ protected static Analyzer anlzr;
[TearDown]
public override void TearDown()
@@ -135,11 +136,7 @@
}
}
- /// <summary>
- /// LUCENENET specific
- /// Non-static because NewField is now non-static
- /// </summary>
- private void AddDoc(RandomIndexWriter iw, int i)
+ private static void AddDoc(RandomIndexWriter iw, int i)
{
Document d = new Document();
Field f;
@@ -168,7 +165,7 @@
}
// 17 --> ID00017
- protected internal static string Id2String(int scoreAndID)
+ protected static string Id2String(int scoreAndID)
{
string s = "000000000" + scoreAndID;
int n = ("" + N_DOCS).Length + 3;
@@ -183,13 +180,13 @@
}
// extract expected doc score from its ID Field: "ID7" --> 7.0
- protected internal static float ExpectedFieldScore(string docIDFieldVal)
+ protected static float ExpectedFieldScore(string docIDFieldVal)
{
return Convert.ToSingle(docIDFieldVal.Substring(2));
}
// debug messages (change DBG to true for anything to print)
- protected internal static void Log(object o)
+ protected static void Log(object o)
{
if (Verbose)
{
diff --git a/src/Lucene.Net.Tests.Queries/Function/TestBoostedQuery.cs b/src/Lucene.Net.Tests.Queries/Function/TestBoostedQuery.cs
index dc82e18..70caf92 100644
--- a/src/Lucene.Net.Tests.Queries/Function/TestBoostedQuery.cs
+++ b/src/Lucene.Net.Tests.Queries/Function/TestBoostedQuery.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Analysis;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Analysis;
using Lucene.Net.Documents;
using Lucene.Net.Index;
using Lucene.Net.Index.Extensions;
diff --git a/src/Lucene.Net.Tests.Queries/Function/TestDocValuesFieldSources.cs b/src/Lucene.Net.Tests.Queries/Function/TestDocValuesFieldSources.cs
index cf27cbd..9afd780 100644
--- a/src/Lucene.Net.Tests.Queries/Function/TestDocValuesFieldSources.cs
+++ b/src/Lucene.Net.Tests.Queries/Function/TestDocValuesFieldSources.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Analysis;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Analysis;
using Lucene.Net.Documents;
using Lucene.Net.Index;
using Lucene.Net.Queries.Function;
diff --git a/src/Lucene.Net.Tests.Queries/Function/TestFieldScoreQuery.cs b/src/Lucene.Net.Tests.Queries/Function/TestFieldScoreQuery.cs
index bdb2e6b..4cb8df9 100644
--- a/src/Lucene.Net.Tests.Queries/Function/TestFieldScoreQuery.cs
+++ b/src/Lucene.Net.Tests.Queries/Function/TestFieldScoreQuery.cs
@@ -1,4 +1,5 @@
-using J2N.Text;
+// Lucene version compatibility level 4.8.1
+using J2N.Text;
using Lucene.Net.Index;
using Lucene.Net.Queries.Function;
using Lucene.Net.Search;
diff --git a/src/Lucene.Net.Tests.Queries/Function/TestFunctionQuerySort.cs b/src/Lucene.Net.Tests.Queries/Function/TestFunctionQuerySort.cs
index 768dd6f..13848da 100644
--- a/src/Lucene.Net.Tests.Queries/Function/TestFunctionQuerySort.cs
+++ b/src/Lucene.Net.Tests.Queries/Function/TestFunctionQuerySort.cs
@@ -1,4 +1,6 @@
-using System;
+// Lucene version compatibility level 4.8.1
+using System;
+using System.Globalization;
using Lucene.Net.Documents;
using Lucene.Net.Index;
using Lucene.Net.Index.Extensions;
@@ -48,7 +50,7 @@
const int NUM_VALS = 5;
for (int val = NUM_VALS; val > 0; val--)
{
- field.SetStringValue(Convert.ToString(val));
+ field.SetStringValue(Convert.ToString(val, CultureInfo.InvariantCulture));
writer.AddDocument(doc);
}
@@ -87,7 +89,7 @@
int afterValue = (int)((double?)afterHit.Fields[0]);
foreach (ScoreDoc hit in hits.ScoreDocs)
{
- int val = Convert.ToInt32(reader.Document(hit.Doc).Get("value"));
+ int val = Convert.ToInt32(reader.Document(hit.Doc).Get("value"), CultureInfo.InvariantCulture);
assertTrue(afterValue <= val);
assertFalse(hit.Doc == afterHit.Doc);
}
diff --git a/src/Lucene.Net.Tests.Queries/Function/TestLongNormValueSource.cs b/src/Lucene.Net.Tests.Queries/Function/TestLongNormValueSource.cs
index 753d06f..19ff987 100644
--- a/src/Lucene.Net.Tests.Queries/Function/TestLongNormValueSource.cs
+++ b/src/Lucene.Net.Tests.Queries/Function/TestLongNormValueSource.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Analysis;
+// Lucene version compatibility level 4.8.1
+using Lucene.Net.Analysis;
using Lucene.Net.Documents;
using Lucene.Net.Index;
using Lucene.Net.Index.Extensions;
@@ -81,7 +82,9 @@
{
// no norm field (so agnostic to indexed similarity)
searcher.Similarity = sim;
- AssertHits(new FunctionQuery(new NormValueSource("text")), new float[] { 0f, 0f });
+ AssertHits(new FunctionQuery(
+ new NormValueSource("text")),
+ new float[] { 0f, 0f });
}
finally
{
@@ -89,7 +92,7 @@
}
}
- protected virtual void AssertHits(Query q, float[] scores)
+ internal void AssertHits(Query q, float[] scores)
{
ScoreDoc[] expected = new ScoreDoc[scores.Length];
int[] expectedDocs = new int[scores.Length];
diff --git a/src/Lucene.Net.Tests.Queries/Function/TestOrdValues.cs b/src/Lucene.Net.Tests.Queries/Function/TestOrdValues.cs
index ef5c41b..baadaa5 100644
--- a/src/Lucene.Net.Tests.Queries/Function/TestOrdValues.cs
+++ b/src/Lucene.Net.Tests.Queries/Function/TestOrdValues.cs
@@ -1,4 +1,5 @@
-using J2N.Text;
+// Lucene version compatibility level 4.8.1
+using J2N.Text;
using Lucene.Net.Index;
using Lucene.Net.Queries.Function;
using Lucene.Net.Queries.Function.ValueSources;
@@ -91,7 +92,9 @@
Random, q, s);
ScoreDoc[] h = s.Search(q, null, 1000).ScoreDocs;
assertEquals("All docs should be matched!", N_DOCS, h.Length);
- string prevID = inOrder ? "IE" : "IC"; // smaller than all ids of docs in this test ("ID0001", etc.) - greater than all ids of docs in this test ("ID0001", etc.)
+ string prevID = inOrder
+ ? "IE" // greater than all ids of docs in this test ("ID0001", etc.)
+ : "IC"; // smaller than all ids of docs in this test ("ID0001", etc.)
for (int i = 0; i < h.Length; i++)
{
@@ -160,7 +163,9 @@
Log(s.Explain(q, sd[i].Doc));
float expectedScore = N_DOCS - i - 1;
assertEquals("score of result " + i + " shuould be " + expectedScore + " != " + score, expectedScore, score, TEST_SCORE_TOLERANCE_DELTA);
- string expectedId = inOrder ? Id2String(N_DOCS - i) : Id2String(i + 1); // reverse ==> smaller values first - in-order ==> larger values first
+ string expectedId = inOrder
+ ? Id2String(N_DOCS - i) // in-order ==> larger values first
+ : Id2String(i + 1); // reverse ==> smaller values first
assertTrue("id of result " + i + " shuould be " + expectedId + " != " + score, expectedId.Equals(id, StringComparison.Ordinal));
}
r.Dispose();
diff --git a/src/Lucene.Net.Tests.Queries/Function/TestValueSources.cs b/src/Lucene.Net.Tests.Queries/Function/TestValueSources.cs
index 96943f6..07a8fb7 100644
--- a/src/Lucene.Net.Tests.Queries/Function/TestValueSources.cs
+++ b/src/Lucene.Net.Tests.Queries/Function/TestValueSources.cs
@@ -1,4 +1,5 @@
-using System;
+// Lucene version compatibility level 4.8.1
+using System;
using System.Collections.Generic;
using Lucene.Net.Analysis;
using Lucene.Net.Codecs;
@@ -112,44 +113,53 @@
public void TestByte()
{
#pragma warning disable 612, 618
- AssertHits(new FunctionQuery(new ByteFieldSource("byte")), new[] { 5f, 12f });
+ AssertHits(new FunctionQuery(new ByteFieldSource("byte")),
+ new[] { 5f, 12f });
#pragma warning restore 612, 618
}
[Test]
public void TestConst()
{
- AssertHits(new FunctionQuery(new ConstValueSource(0.3f)), new[] { 0.3f, 0.3f });
+ AssertHits(new FunctionQuery(new ConstValueSource(0.3f)),
+ new[] { 0.3f, 0.3f });
}
[Test]
public void TestDiv()
{
- AssertHits(new FunctionQuery(new DivSingleFunction(new ConstValueSource(10f), new ConstValueSource(5f))), new[] { 2f, 2f });
+ AssertHits(new FunctionQuery(new DivSingleFunction(
+ new ConstValueSource(10f), new ConstValueSource(5f))),
+ new[] { 2f, 2f });
}
[Test]
public void TestDocFreq()
{
- AssertHits(new FunctionQuery(new DocFreqValueSource("bogus", "bogus", "text", new BytesRef("test"))), new[] { 2f, 2f });
+ AssertHits(new FunctionQuery(
+ new DocFreqValueSource("bogus", "bogus", "text", new BytesRef("test"))),
+ new[] { 2f, 2f });
}
[Test]
public void TestDoubleConst()
{
- AssertHits(new FunctionQuery(new DoubleConstValueSource(0.3d)), new[] { 0.3f, 0.3f });
+ AssertHits(new FunctionQuery(new DoubleConstValueSource(0.3d)),
+ new[] { 0.3f, 0.3f });
}
[Test]
public void TestDouble()
{
- AssertHits(new FunctionQuery(new DoubleFieldSource("double")), new[] { 3.63f, 5.65f });
+ AssertHits(new FunctionQuery(new DoubleFieldSource("double")),
+ new[] { 3.63f, 5.65f });
}
[Test]
public void TestFloat()
{
- AssertHits(new FunctionQuery(new SingleFieldSource("float")), new[] { 5.2f, 9.3f });
+ AssertHits(new FunctionQuery(new SingleFieldSource("float")),
+ new[] { 5.2f, 9.3f });
}
[Test]
@@ -159,7 +169,8 @@
try
{
searcher.Similarity = new DefaultSimilarity();
- AssertHits(new FunctionQuery(new IDFValueSource("bogus", "bogus", "text", new BytesRef("test"))), new[] { 0.5945349f, 0.5945349f });
+ AssertHits(new FunctionQuery(new IDFValueSource("bogus", "bogus", "text", new BytesRef("test"))),
+ new[] { 0.5945349f, 0.5945349f });
}
finally
{
@@ -170,53 +181,70 @@
[Test]
public void TestIf()
{
- AssertHits(new FunctionQuery(new IfFunction(new BytesRefFieldSource("id"), new ConstValueSource(1.0f), new ConstValueSource(2.0f)
- )), new[] { 1f, 1f });
+ AssertHits(new FunctionQuery(new IfFunction(
+ new BytesRefFieldSource("id"),
+ new ConstValueSource(1.0f),
+ new ConstValueSource(2.0f)
+ )),
+ new[] { 1f, 1f });
// true just if a value exists...
- AssertHits(new FunctionQuery(new IfFunction(new LiteralValueSource("false"), new ConstValueSource(1.0f), new ConstValueSource(2.0f)
- )), new[] { 1f, 1f });
+ AssertHits(new FunctionQuery(new IfFunction(
+ new LiteralValueSource("false"),
+ new ConstValueSource(1.0f),
+ new ConstValueSource(2.0f)
+ )),
+ new[] { 1f, 1f });
}
[Test]
public void TestInt()
{
- AssertHits(new FunctionQuery(new Int32FieldSource("int")), new[] { 35f, 54f });
+ AssertHits(new FunctionQuery(new Int32FieldSource("int")),
+ new[] { 35f, 54f });
}
[Test]
public void TestJoinDocFreq()
{
- AssertHits(new FunctionQuery(new JoinDocFreqValueSource("string", "text")), new[] { 2f, 0f });
+ AssertHits(new FunctionQuery(new JoinDocFreqValueSource("string", "text")),
+ new[] { 2f, 0f });
}
[Test]
public void TestLinearFloat()
{
- AssertHits(new FunctionQuery(new LinearSingleFunction(new ConstValueSource(2.0f), 3, 1)), new[] { 7f, 7f });
+ AssertHits(new FunctionQuery(new LinearSingleFunction(new ConstValueSource(2.0f), 3, 1)),
+ new[] { 7f, 7f });
}
[Test]
public void TestLong()
{
- AssertHits(new FunctionQuery(new Int64FieldSource("long")), new[] { 4343f, 1954f });
+ AssertHits(new FunctionQuery(new Int64FieldSource("long")),
+ new[] { 4343f, 1954f });
}
[Test]
public void TestMaxDoc()
{
- AssertHits(new FunctionQuery(new MaxDocValueSource()), new[] { 2f, 2f });
+ AssertHits(new FunctionQuery(new MaxDocValueSource()),
+ new[] { 2f, 2f });
}
[Test]
public void TestMaxFloat()
{
- AssertHits(new FunctionQuery(new MaxSingleFunction(new ValueSource[] { new ConstValueSource(1f), new ConstValueSource(2f) })), new[] { 2f, 2f });
+ AssertHits(new FunctionQuery(new MaxSingleFunction(new ValueSource[] {
+ new ConstValueSource(1f), new ConstValueSource(2f) })),
+ new[] { 2f, 2f });
}
[Test]
public void TestMinFloat()
{
- AssertHits(new FunctionQuery(new MinSingleFunction(new ValueSource[] { new ConstValueSource(1f), new ConstValueSource(2f) })), new[] { 1f, 1f });
+ AssertHits(new FunctionQuery(new MinSingleFunction(new ValueSource[] {
+ new ConstValueSource(1f), new ConstValueSource(2f) })),
+ new[] { 1f, 1f });
}
[Test]
@@ -227,7 +255,8 @@
{
// no norm field (so agnostic to indexed similarity)
searcher.Similarity = new DefaultSimilarity();
- AssertHits(new FunctionQuery(new NormValueSource("byte")), new[] { 0f, 0f });
+ AssertHits(new FunctionQuery(new NormValueSource("byte")),
+ new[] { 0f, 0f });
}
finally
{
@@ -238,58 +267,77 @@
[Test]
public void TestNumDocs()
{
- AssertHits(new FunctionQuery(new NumDocsValueSource()), new[] { 2f, 2f });
+ AssertHits(new FunctionQuery(new NumDocsValueSource()),
+ new[] { 2f, 2f });
}
[Test]
public void TestPow()
{
- AssertHits(new FunctionQuery(new PowSingleFunction(new ConstValueSource(2f), new ConstValueSource(3f))), new[] { 8f, 8f });
+ AssertHits(new FunctionQuery(new PowSingleFunction(
+ new ConstValueSource(2f), new ConstValueSource(3f))),
+ new[] { 8f, 8f });
}
[Test]
public void TestProduct()
{
- AssertHits(new FunctionQuery(new ProductSingleFunction(new ValueSource[] { new ConstValueSource(2f), new ConstValueSource(3f) })), new[] { 6f, 6f });
+ AssertHits(new FunctionQuery(new ProductSingleFunction(
+ new ValueSource[] { new ConstValueSource(2f), new ConstValueSource(3f) })),
+ new[] { 6f, 6f });
}
[Test]
public void TestQuery()
{
- AssertHits(new FunctionQuery(new QueryValueSource(new FunctionQuery(new ConstValueSource(2f)), 0f)), new[] { 2f, 2f });
+ AssertHits(new FunctionQuery(new QueryValueSource(
+ new FunctionQuery(new ConstValueSource(2f)), 0f)),
+ new[] { 2f, 2f });
}
[Test]
public void TestRangeMap()
{
- AssertHits(new FunctionQuery(new RangeMapSingleFunction(new SingleFieldSource("float"), 5, 6, 1, 0f)), new[] { 1f, 0f });
- AssertHits(new FunctionQuery(new RangeMapSingleFunction(new SingleFieldSource("float"), 5, 6, new SumSingleFunction(new ValueSource[] { new ConstValueSource(1f), new ConstValueSource(2f) }), new ConstValueSource(11f))), new[] { 3f, 11f });
+ AssertHits(new FunctionQuery(new RangeMapSingleFunction(new SingleFieldSource("float"),
+ 5, 6, 1, 0f)),
+ new[] { 1f, 0f });
+ AssertHits(new FunctionQuery(new RangeMapSingleFunction(new SingleFieldSource("float"),
+ 5, 6, new SumSingleFunction(new ValueSource[] { new ConstValueSource(1f), new ConstValueSource(2f) }),
+ new ConstValueSource(11f))),
+ new[] { 3f, 11f });
}
[Test]
public void TestReciprocal()
{
- AssertHits(new FunctionQuery(new ReciprocalSingleFunction(new ConstValueSource(2f), 3, 1, 4)), new[] { 0.1f, 0.1f });
+ AssertHits(new FunctionQuery(new ReciprocalSingleFunction(new ConstValueSource(2f),
+ 3, 1, 4)),
+ new[] { 0.1f, 0.1f });
}
[Test]
public void TestScale()
{
- AssertHits(new FunctionQuery(new ScaleSingleFunction(new Int32FieldSource("int"), 0, 1)), new[] { 0.0f, 1.0f });
+ AssertHits(new FunctionQuery(new ScaleSingleFunction(new Int32FieldSource("int"),
+ 0, 1)),
+ new[] { 0.0f, 1.0f });
}
[Test]
public void TestShort()
{
#pragma warning disable 612, 618
- AssertHits(new FunctionQuery(new Int16FieldSource("short")), new[] { 945f, 123f });
+ AssertHits(new FunctionQuery(new Int16FieldSource("short")),
+ new[] { 945f, 123f });
#pragma warning restore 612, 618
}
[Test]
public void TestSumFloat()
{
- AssertHits(new FunctionQuery(new SumSingleFunction(new ValueSource[] { new ConstValueSource(1f), new ConstValueSource(2f) })), new[] { 3f, 3f });
+ AssertHits(new FunctionQuery(new SumSingleFunction(new ValueSource[] {
+ new ConstValueSource(1f), new ConstValueSource(2f) })),
+ new[] { 3f, 3f });
}
[Test]
@@ -297,19 +345,25 @@
{
if (Codec.Default.Name.Equals("Lucene3x", StringComparison.Ordinal))
{
- AssertHits(new FunctionQuery(new SumTotalTermFreqValueSource("text")), new[] { -1f, -1f });
+ AssertHits(new FunctionQuery(new SumTotalTermFreqValueSource("text")),
+ new[] { -1f, -1f });
}
else
{
- AssertHits(new FunctionQuery(new SumTotalTermFreqValueSource("text")), new[] { 8f, 8f });
+ AssertHits(new FunctionQuery(new SumTotalTermFreqValueSource("text")),
+ new[] { 8f, 8f });
}
}
[Test]
public void TestTermFreq()
{
- AssertHits(new FunctionQuery(new TermFreqValueSource("bogus", "bogus", "text", new BytesRef("test"))), new[] { 3f, 1f });
- AssertHits(new FunctionQuery(new TermFreqValueSource("bogus", "bogus", "string", new BytesRef("bar"))), new[] { 0f, 1f });
+ AssertHits(new FunctionQuery(
+ new TermFreqValueSource("bogus", "bogus", "text", new BytesRef("test"))),
+ new[] { 3f, 1f });
+ AssertHits(new FunctionQuery(
+ new TermFreqValueSource("bogus", "bogus", "string", new BytesRef("bar"))),
+ new[] { 0f, 1f });
}
[Test]
@@ -320,8 +374,12 @@
{
// no norm field (so agnostic to indexed similarity)
searcher.Similarity = new DefaultSimilarity();
- AssertHits(new FunctionQuery(new TFValueSource("bogus", "bogus", "text", new BytesRef("test"))), new[] { (float)Math.Sqrt(3d), (float)Math.Sqrt(1d) });
- AssertHits(new FunctionQuery(new TFValueSource("bogus", "bogus", "string", new BytesRef("bar"))), new[] { 0f, 1f });
+ AssertHits(new FunctionQuery(
+ new TFValueSource("bogus", "bogus", "text", new BytesRef("test"))),
+ new[] { (float)Math.Sqrt(3d), (float)Math.Sqrt(1d) });
+ AssertHits(new FunctionQuery(
+ new TFValueSource("bogus", "bogus", "string", new BytesRef("bar"))),
+ new[] { 0f, 1f });
}
finally
{
@@ -334,11 +392,15 @@
{
if (Codec.Default.Name.Equals("Lucene3x", StringComparison.Ordinal))
{
- AssertHits(new FunctionQuery(new TotalTermFreqValueSource("bogus", "bogus", "text", new BytesRef("test"))), new[] { -1f, -1f });
+ AssertHits(new FunctionQuery(
+ new TotalTermFreqValueSource("bogus", "bogus", "text", new BytesRef("test"))),
+ new[] { -1f, -1f });
}
else
{
- AssertHits(new FunctionQuery(new TotalTermFreqValueSource("bogus", "bogus", "text", new BytesRef("test"))), new[] { 4f, 4f });
+ AssertHits(new FunctionQuery(
+ new TotalTermFreqValueSource("bogus", "bogus", "text", new BytesRef("test"))),
+ new[] { 4f, 4f });
}
}
@@ -351,7 +413,8 @@
expectedDocs[i] = i;
expected[i] = new ScoreDoc(i, scores[i]);
}
- TopDocs docs = searcher.Search(q, null, documents.Count, new Sort(new SortField("id", SortFieldType.STRING)), true, false);
+ TopDocs docs = searcher.Search(q, null, documents.Count,
+ new Sort(new SortField("id", SortFieldType.STRING)), true, false);
CheckHits.DoCheckHits(
#if FEATURE_INSTANCE_TESTDATA_INITIALIZATION
this,
diff --git a/src/Lucene.Net.Tests.Queries/Mlt/TestMoreLikeThis.cs b/src/Lucene.Net.Tests.Queries/Mlt/TestMoreLikeThis.cs
index 2f492e6..0a5fc62 100644
--- a/src/Lucene.Net.Tests.Queries/Mlt/TestMoreLikeThis.cs
+++ b/src/Lucene.Net.Tests.Queries/Mlt/TestMoreLikeThis.cs
@@ -1,4 +1,5 @@
-using System.Collections.Generic;
+// Lucene version compatibility level 4.8.1
+using System.Collections.Generic;
using System.IO;
using Lucene.Net.Analysis;
using Lucene.Net.Documents;
@@ -99,7 +100,8 @@
assertNotNull("Expected term " + tq.Term.Text(), termBoost);
float totalBoost = (float) (termBoost * boostFactor);
- assertEquals("Expected boost of " + totalBoost + " for term '" + tq.Term.Text() + "' got " + tq.Boost, totalBoost, tq.Boost, 0.0001);
+ assertEquals("Expected boost of " + totalBoost + " for term '"
+ + tq.Term.Text() + "' got " + tq.Boost, totalBoost, tq.Boost, 0.0001);
}
}
diff --git a/src/Lucene.Net.Tests.Queries/TermFilterTest.cs b/src/Lucene.Net.Tests.Queries/TermFilterTest.cs
index c4a403c..d8cd554 100644
--- a/src/Lucene.Net.Tests.Queries/TermFilterTest.cs
+++ b/src/Lucene.Net.Tests.Queries/TermFilterTest.cs
@@ -1,4 +1,5 @@
-using System;
+// Lucene version compatibility level 4.8.1
+using System;
using System.Collections.Generic;
using Lucene.Net.Documents;
using Lucene.Net.Index;
@@ -58,15 +59,19 @@
assertTrue(reader.Context is AtomicReaderContext);
var context = (AtomicReaderContext)reader.Context;
w.Dispose();
+
DocIdSet idSet = TermFilter(fieldName, @"value1").GetDocIdSet(context, context.AtomicReader.LiveDocs);
assertNotNull(@"must not be null", idSet);
DocIdSetIterator iter = idSet.GetIterator();
assertEquals(iter.NextDoc(), 0);
assertEquals(iter.NextDoc(), DocIdSetIterator.NO_MORE_DOCS);
+
idSet = TermFilter(fieldName, @"value2").GetDocIdSet(context, context.AtomicReader.LiveDocs);
assertNull(@"must be null", idSet);
+
idSet = TermFilter(@"field2", @"value1").GetDocIdSet(context, context.AtomicReader.LiveDocs);
assertNull(@"must be null", idSet);
+
reader.Dispose();
rd.Dispose();
}
@@ -94,12 +99,15 @@
IndexReader reader = w.GetReader();
w.Dispose();
+
IndexSearcher searcher = NewSearcher(reader);
+
int numQueries = AtLeast(10);
for (int i = 0; i < numQueries; i++)
{
Term term = terms[Random.nextInt(num)];
TopDocs queryResult = searcher.Search(new TermQuery(term), reader.MaxDoc);
+
MatchAllDocsQuery matchAll = new MatchAllDocsQuery();
TermFilter filter = TermFilter(term);
TopDocs filterResult = searcher.Search(matchAll, filter, reader.MaxDoc);
@@ -124,16 +132,13 @@
string field1 = @"field" + i;
string field2 = @"field" + i + num;
string value1 = TestUtil.RandomRealisticUnicodeString(Random);
- string value2 = value1 + @"x";
+ string value2 = value1 + @"x"; // this must be not equal to value1
+
TermFilter filter1 = TermFilter(field1, value1);
TermFilter filter2 = TermFilter(field1, value2);
TermFilter filter3 = TermFilter(field2, value1);
TermFilter filter4 = TermFilter(field2, value2);
- var filters = new TermFilter[]
- {
- filter1, filter2, filter3, filter4
- };
-
+ var filters = new TermFilter[] { filter1, filter2, filter3, filter4 };
for (int j = 0; j < filters.Length; j++)
{
TermFilter termFilter = filters[j];
diff --git a/src/Lucene.Net.Tests.Queries/TermsFilterTest.cs b/src/Lucene.Net.Tests.Queries/TermsFilterTest.cs
index 7627f18..660b4b7 100644
--- a/src/Lucene.Net.Tests.Queries/TermsFilterTest.cs
+++ b/src/Lucene.Net.Tests.Queries/TermsFilterTest.cs
@@ -1,5 +1,7 @@
-using System;
+// Lucene version compatibility level 4.8.1
+using System;
using System.Collections.Generic;
+using System.Globalization;
using System.Linq;
using J2N.Collections.Generic.Extensions;
using Lucene.Net.Documents;
@@ -88,7 +90,7 @@
reader.Dispose();
rd.Dispose();
}
-
+
[Test]
public void TestMissingField()
{
@@ -171,7 +173,7 @@
- AtomicReaderContext context = reader.Leaves.First();
+ AtomicReaderContext context = reader.Leaves[0];
TermsFilter tf = new TermsFilter(terms);
FixedBitSet bits = (FixedBitSet)tf.GetDocIdSet(context, context.AtomicReader.LiveDocs);
@@ -217,7 +219,7 @@
IndexReader reader = w.GetReader();
w.Dispose();
assertEquals(1, reader.Leaves.size());
- AtomicReaderContext context = reader.Leaves.First();
+ AtomicReaderContext context = reader.Leaves[0];
TermsFilter tf = new TermsFilter(terms.ToList());
FixedBitSet bits = (FixedBitSet)tf.GetDocIdSet(context, context.AtomicReader.LiveDocs);
@@ -240,7 +242,7 @@
IList<Term> terms = new List<Term>();
for (int i = 0; i < num; i++)
{
- string field = "field" + (singleField ? "1" : Random.Next(100).ToString());
+ string field = "field" + (singleField ? "1" : Random.Next(100).ToString(CultureInfo.InvariantCulture));
string @string = TestUtil.RandomRealisticUnicodeString(Random);
terms.Add(new Term(field, @string));
Document doc = new Document();
@@ -398,7 +400,10 @@
[Test]
public void TestToString()
{
- TermsFilter termsFilter = new TermsFilter(new Term("field1", "a"), new Term("field1", "b"), new Term("field1", "c"));
+ TermsFilter termsFilter = new TermsFilter(
+ new Term("field1", "a"),
+ new Term("field1", "b"),
+ new Term("field1", "c"));
assertEquals("field1:a field1:b field1:c", termsFilter.ToString());
}
}
diff --git a/src/Lucene.Net.Tests.Queries/TestCustomScoreQuery.cs b/src/Lucene.Net.Tests.Queries/TestCustomScoreQuery.cs
index 47d3052..7c60bc0 100644
--- a/src/Lucene.Net.Tests.Queries/TestCustomScoreQuery.cs
+++ b/src/Lucene.Net.Tests.Queries/TestCustomScoreQuery.cs
@@ -1,4 +1,5 @@
-using System;
+// Lucene version compatibility level 4.8.1
+using System;
using System.Collections.Generic;
using Lucene.Net.Index;
using Lucene.Net.Queries;
@@ -89,7 +90,8 @@
private class CustomAddQuery : CustomScoreQuery
{
// constructor
- internal CustomAddQuery(Query q, FunctionQuery qValSrc) : base(q, qValSrc)
+ internal CustomAddQuery(Query q, FunctionQuery qValSrc)
+ : base(q, qValSrc)
{
}
@@ -129,7 +131,8 @@
private class CustomMulAddQuery : CustomScoreQuery
{
// constructor
- internal CustomMulAddQuery(Query q, FunctionQuery qValSrc1, FunctionQuery qValSrc2) : base(q, qValSrc1, qValSrc2)
+ internal CustomMulAddQuery(Query q, FunctionQuery qValSrc1, FunctionQuery qValSrc2)
+ : base(q, qValSrc1, qValSrc2)
{
}
@@ -259,7 +262,8 @@
r.Dispose();
}
-
+
+ // Test that FieldScoreQuery returns docs with expected score.
private void DoTestCustomScore(ValueSource valueSource, double dboost)
{
float boost = (float)dboost;
@@ -310,18 +314,22 @@
TopDocs td5CustomMulAdd = s.Search(q5CustomMulAdd, null, 1000);
// put results in map so we can verify the scores although they have changed
- IDictionary<int, float> h1 = TopDocsToMap(td1);
- IDictionary<int, float> h2CustomNeutral = TopDocsToMap(td2CustomNeutral);
- IDictionary<int, float> h3CustomMul = TopDocsToMap(td3CustomMul);
- IDictionary<int, float> h4CustomAdd = TopDocsToMap(td4CustomAdd);
- IDictionary<int, float> h5CustomMulAdd = TopDocsToMap(td5CustomMulAdd);
+ IDictionary<int, float> h1 = TopDocsToMap(td1);
+ IDictionary<int, float> h2CustomNeutral = TopDocsToMap(td2CustomNeutral);
+ IDictionary<int, float> h3CustomMul = TopDocsToMap(td3CustomMul);
+ IDictionary<int, float> h4CustomAdd = TopDocsToMap(td4CustomAdd);
+ IDictionary<int, float> h5CustomMulAdd = TopDocsToMap(td5CustomMulAdd);
- VerifyResults(boost, s, h1, h2CustomNeutral, h3CustomMul, h4CustomAdd, h5CustomMulAdd, q1, q2CustomNeutral, q3CustomMul, q4CustomAdd, q5CustomMulAdd);
+ VerifyResults(boost, s,
+ h1, h2CustomNeutral, h3CustomMul, h4CustomAdd, h5CustomMulAdd,
+ q1, q2CustomNeutral, q3CustomMul, q4CustomAdd, q5CustomMulAdd);
r.Dispose();
}
// verify results are as expected.
- private void VerifyResults(float boost, IndexSearcher s, IDictionary<int, float> h1, IDictionary<int, float> h2customNeutral, IDictionary<int, float> h3CustomMul, IDictionary<int, float> h4CustomAdd, IDictionary<int, float> h5CustomMulAdd, Query q1, Query q2, Query q3, Query q4, Query q5)
+ private void VerifyResults(float boost, IndexSearcher s,
+ IDictionary<int, float> h1, IDictionary<int, float> h2customNeutral, IDictionary<int, float> h3CustomMul, IDictionary<int, float> h4CustomAdd, IDictionary<int, float> h5CustomMulAdd,
+ Query q1, Query q2, Query q3, Query q4, Query q5)
{
// verify numbers of matches