< Summary

Class:Azure.Search.Documents.Indexes.SearchableFieldAttribute
Assembly:Azure.Search.Documents
File(s):C:\Git\azure-sdk-for-net\sdk\search\Azure.Search.Documents\src\Indexes\SearchableFieldAttribute.cs
Covered lines:17
Uncovered lines:0
Coverable lines:17
Total lines:80
Line coverage:100% (17 of 17)
Covered branches:10
Total branches:10
Branch coverage:100% (10 of 10)

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
get_AnalyzerName()-100%100%
get_SearchAnalyzerName()-100%100%
get_IndexAnalyzerName()-100%100%
get_SynonymMapNames()-100%100%
Azure.Search.Documents.Indexes.ISearchFieldAttribute.SetField(...)-100%100%

File(s)

C:\Git\azure-sdk-for-net\sdk\search\Azure.Search.Documents\src\Indexes\SearchableFieldAttribute.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License.
 3
 4using System;
 5using Azure.Search.Documents.Indexes.Models;
 6
 7namespace Azure.Search.Documents.Indexes
 8{
 9    /// <summary>
 10    /// Attributes a simple field using a primitive type or a collection of a primitive type.
 11    /// </summary>
 12    [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
 13    public class SearchableFieldAttribute : SimpleFieldAttribute, ISearchFieldAttribute
 14    {
 15        /// <summary>
 16        /// Gets or sets the name of the language analyzer. This property cannot be set when either <see cref="SearchAna
 17        /// Once the analyzer is chosen, it cannot be changed for the field in the index.
 18        /// </summary>
 19        /// <value>String values from <see cref="LexicalAnalyzerName.Values">LexicalAnalyzerName</see>, or the name of a
 584120        public string AnalyzerName { get; set; }
 21
 22        /// <summary>
 23        /// Gets or sets the name of the language analyzer for searching. This property must be set together with <see c
 24        /// This property cannot be set to the name of a language analyzer; use the <see cref="AnalyzerName"/> property 
 25        /// Once the analyzer is chosen, it cannot be changed for the field in the index.
 26        /// </summary>
 27        /// <value>String values from <see cref="LexicalAnalyzerName.Values">LexicalAnalyzerName</see>, or the name of a
 427728        public string SearchAnalyzerName { get; set; }
 29
 30        /// <summary>
 31        /// Gets or sets the name of the language analyzer for indexing. This property must be set together with <see cr
 32        /// This property cannot be set to the name of a language analyzer; use the <see cref="AnalyzerName"/> property 
 33        /// Once the analyzer is chosen, it cannot be changed for the field in the index.
 34        /// </summary>
 35        /// <value>String values from <see cref="LexicalAnalyzerName.Values">LexicalAnalyzerName</see>, or the name of a
 427736        public string IndexAnalyzerName { get; set; }
 37
 38        /// <summary>
 39        /// Gets or sets a list of names of synonym maps to associate with this field.
 40        /// Currently, only one synonym map per field is supported.
 41        /// </summary>
 42        /// <remarks>
 43        /// Assigning a synonym map to a field ensures that query terms targeting that field are expanded at query-time 
 44        /// This attribute can be changed on existing fields.
 45        /// </remarks>
 504946        public string[] SynonymMapNames { get; set; }
 47
 48        /// <inheritdoc/>
 49        void ISearchFieldAttribute.SetField(SearchField field)
 50        {
 272551            SetField(field);
 52
 272553            field.IsSearchable = true;
 54
 272555            if (SynonymMapNames != null)
 56            {
 38657                field.SynonymMapNames.Clear();
 154458                for (int i = 0; i < SynonymMapNames.Length; ++i)
 59                {
 38660                    field.SynonymMapNames.Add(SynonymMapNames[i]);
 61                }
 62            }
 63
 272564            if (AnalyzerName != null)
 65            {
 116866                field.AnalyzerName = AnalyzerName;
 67            }
 68
 272569            if (SearchAnalyzerName != null)
 70            {
 38671                field.SearchAnalyzerName = SearchAnalyzerName;
 72            }
 73
 272574            if (IndexAnalyzerName != null)
 75            {
 38676                field.IndexAnalyzerName = IndexAnalyzerName;
 77            }
 272578        }
 79    }
 80}