You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by ni...@apache.org on 2019/12/03 14:03:39 UTC
[lucenenet] 09/20: BUG:
Lucene.Net.Highlighter.PostingsHighlight.PostingsHighlighter: SortedSet
has the wrong behavior for getting a range of values (second argument is
supposed to be exclusive), so swapped in TreeSet (LUCENENET-619)
This is an automated email from the ASF dual-hosted git repository.
nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git
commit 0ab4eb77bc5ad5b5079029024b26d5aa8754c3a2
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Thu Oct 31 09:58:38 2019 +0700
BUG: Lucene.Net.Highlighter.PostingsHighlight.PostingsHighlighter: SortedSet<T> has the wrong behavior for getting a range of values (second argument is supposed to be exclusive), so swapped in TreeSet<T> (LUCENENET-619)
---
.../PostingsHighlight/PostingsHighlighter.cs | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/Lucene.Net.Highlighter/PostingsHighlight/PostingsHighlighter.cs b/src/Lucene.Net.Highlighter/PostingsHighlight/PostingsHighlighter.cs
index e8e20f3..b94550c 100644
--- a/src/Lucene.Net.Highlighter/PostingsHighlight/PostingsHighlighter.cs
+++ b/src/Lucene.Net.Highlighter/PostingsHighlight/PostingsHighlighter.cs
@@ -389,7 +389,7 @@ namespace Lucene.Net.Search.PostingsHighlight
}
IndexReader reader = searcher.IndexReader;
Query rewritten = Rewrite(query);
- SortedSet<Term> queryTerms = new SortedSet<Term>();//new TreeSet<>();
+ TreeSet<Term> queryTerms = new TreeSet<Term>();
rewritten.ExtractTerms(queryTerms);
IndexReaderContext readerContext = reader.Context;
@@ -417,7 +417,10 @@ namespace Lucene.Net.Search.PostingsHighlight
int numPassages = maxPassages[i];
Term floor = new Term(field, "");
Term ceiling = new Term(field, UnicodeUtil.BIG_TERM);
- SortedSet<Term> fieldTerms = queryTerms.GetViewBetween(floor, ceiling); //SubSet(floor, ceiling);
+ // LUCENENET NOTE: System.Collections.Generic.SortedSet<T>.GetViewBetween ceiling is inclusive.
+ // However, in Java, subSet ceiling is exclusive. Also,
+ // SortedSet<T> doesn't seem to have the correct logic, but C5.TreeSet<T> does.
+ var fieldTerms = queryTerms.RangeFromTo(floor, ceiling); //SubSet(floor, ceiling);
// TODO: should we have some reasonable defaults for term pruning? (e.g. stopwords)
// Strip off the redundant field: