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 2017/06/22 05:25:34 UTC
[33/38] lucenenet git commit: Lucene.Net.Queries.CommonTermsQuery:
Implemented IEnumerable so collection initializer can be used and added
documentation to show usage of collection initializer
Lucene.Net.Queries.CommonTermsQuery: Implemented IEnumerable<T> so collection initializer can be used and added documentation to show usage of collection initializer
Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/a632950c
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/a632950c
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/a632950c
Branch: refs/heads/master
Commit: a632950c14a7608e2f98e3f38a740e21d5787c72
Parents: 121684b
Author: Shad Storhaug <sh...@shadstorhaug.com>
Authored: Wed Jun 21 23:56:32 2017 +0700
Committer: Shad Storhaug <sh...@shadstorhaug.com>
Committed: Thu Jun 22 00:13:04 2017 +0700
----------------------------------------------------------------------
src/Lucene.Net.Queries/CommonTermsQuery.cs | 35 +++++++++++++++++++++++--
1 file changed, 33 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucenenet/blob/a632950c/src/Lucene.Net.Queries/CommonTermsQuery.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Queries/CommonTermsQuery.cs b/src/Lucene.Net.Queries/CommonTermsQuery.cs
index dfc4b4a..701dbd6 100644
--- a/src/Lucene.Net.Queries/CommonTermsQuery.cs
+++ b/src/Lucene.Net.Queries/CommonTermsQuery.cs
@@ -3,6 +3,7 @@ using Lucene.Net.Search;
using Lucene.Net.Support;
using Lucene.Net.Util;
using System;
+using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
@@ -27,7 +28,7 @@ namespace Lucene.Net.Queries
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
+
/// <summary>
/// A query that executes high-frequency terms in a optional sub-query to prevent
/// slow queries due to "common" terms like stopwords. This query
@@ -52,8 +53,18 @@ namespace Lucene.Net.Queries
/// rewritten into a plain conjunction query ie. all high-frequency terms need to
/// match in order to match a document.
/// </para>
+ /// <para/>
+ /// Collection initializer note: To create and populate a <see cref="CommonTermsQuery"/>
+ /// in a single statement, you can use the following example as a guide:
+ ///
+ /// <code>
+ /// var query = new CommonTermsQuery() {
+ /// new Term("field", "microsoft"),
+ /// new Term("field", "office")
+ /// };
+ /// </code>
/// </summary>
- public class CommonTermsQuery : Query
+ public class CommonTermsQuery : Query, IEnumerable<Term> // LUCENENET specific - implemented IEnumerable<Term>, which allows for use of collection initializer. See: https://stackoverflow.com/a/9195144
{
/*
* TODO maybe it would make sense to abstract this even further and allow to
@@ -476,5 +487,25 @@ namespace Lucene.Net.Queries
{
return context == null ? new TermQuery(term) : new TermQuery(term, context);
}
+
+ /// <summary>
+ /// Returns an enumerator that iterates through the <see cref="m_terms"/> collection.
+ /// </summary>
+ /// <returns>An enumerator that can be used to iterate through the <see cref="m_terms"/> collection.</returns>
+ // LUCENENET specific
+ public IEnumerator<Term> GetEnumerator()
+ {
+ return this.m_terms.GetEnumerator();
+ }
+
+ /// <summary>
+ /// Returns an enumerator that iterates through the <see cref="m_terms"/> collection.
+ /// </summary>
+ /// <returns>An enumerator that can be used to iterate through the <see cref="m_terms"/> collection.</returns>
+ // LUCENENET specific
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
}
}
\ No newline at end of file