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/08/07 22:26:34 UTC
[lucenenet] 37/42: BUG:
Lucene.Net.Highlighter.VectorHighlight.FieldQuery: List replacement for
LinkedHashSet preserves insertion order,
but we need to explicitly check to ensure no duplicate values are added
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 0245279c420bef7e14be4e3cb241726cbb180dab
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Wed Aug 7 08:43:45 2019 +0700
BUG: Lucene.Net.Highlighter.VectorHighlight.FieldQuery: List<T> replacement for LinkedHashSet<T> preserves insertion order, but we need to explicitly check to ensure no duplicate values are added
---
.../VectorHighlight/FieldQuery.cs | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
diff --git a/src/Lucene.Net.Highlighter/VectorHighlight/FieldQuery.cs b/src/Lucene.Net.Highlighter/VectorHighlight/FieldQuery.cs
index 369c4b7..8c2676b 100644
--- a/src/Lucene.Net.Highlighter/VectorHighlight/FieldQuery.cs
+++ b/src/Lucene.Net.Highlighter/VectorHighlight/FieldQuery.cs
@@ -110,7 +110,7 @@ namespace Lucene.Net.Search.VectorHighlight
}
else if (sourceQuery is PhraseQuery)
{
- if (!flatQueries.Contains(sourceQuery))
+ if (!flatQueries.Contains(sourceQuery)) // LUCENENET - set semantics, but this is a list. The original logic was already correct.
{
PhraseQuery pq = (PhraseQuery)sourceQuery;
if (pq.GetTerms().Length > 1)
@@ -119,7 +119,8 @@ namespace Lucene.Net.Search.VectorHighlight
{
Query flat = new TermQuery(pq.GetTerms()[0]);
flat.Boost = pq.Boost;
- flatQueries.Add(flat);
+ if (!flatQueries.Contains(flat)) // LUCENENET specific - set semantics, but this is a list
+ flatQueries.Add(flat);
}
}
}
@@ -202,13 +203,17 @@ namespace Lucene.Net.Search.VectorHighlight
{
i++;
}
- expandQueries.Add(query);
+ if (!expandQueries.Contains(query)) // LUCENENET specific - set semantics, but this is a list
+ expandQueries.Add(query);
if (!(query is PhraseQuery)) continue;
- for (IEnumerator<Query> j = flatQueries.GetEnumerator(); j.MoveNext();)
+ using (IEnumerator<Query> j = flatQueries.GetEnumerator())
{
- Query qj = j.Current;
- if (!(qj is PhraseQuery)) continue;
- CheckOverlap(expandQueries, (PhraseQuery)query, (PhraseQuery)qj);
+ while (j.MoveNext())
+ {
+ Query qj = j.Current;
+ if (!(qj is PhraseQuery)) continue;
+ CheckOverlap(expandQueries, (PhraseQuery)query, (PhraseQuery)qj);
+ }
}
}
@@ -289,7 +294,7 @@ namespace Lucene.Net.Search.VectorHighlight
}
pq.Slop = slop;
pq.Boost = boost;
- if (!expandQueries.Contains(pq))
+ if (!expandQueries.Contains(pq)) // LUCENENET specific - set semantics, but this is a list
expandQueries.Add(pq);
}
}