Esempio n. 1
0
        /// <summary>
        /// Returns <see cref="PerFieldIndexingInfo"/> of the requested <see cref="FieldSettings"/>.
        /// Return value is null if the <see cref="FieldSettings"/> does not exist.
        /// </summary>
        /// <param name="fieldName">Name of the field without aspect specifier.</param>
        public PerFieldIndexingInfo GetLocalPerFieldIndexingInfo(string fieldName)
        {
            PerFieldIndexingInfo info = null;

            _indexingInfo.TryGetValue(fieldName, out info);
            return(info);
        }
Esempio n. 2
0
        internal static QueryFieldLevel GetFieldLevel(string fieldName, PerFieldIndexingInfo indexingInfo)
        {
            QueryFieldLevel level;

            if (fieldName == LucObject.FieldName.AllText)
            {
                level = QueryFieldLevel.BinaryOrFullText;
            }
            else if (indexingInfo == null)
            {
                level = QueryFieldLevel.BinaryOrFullText;
            }
            else if (indexingInfo.FieldDataType == typeof(SenseNet.ContentRepository.Storage.BinaryData))
            {
                level = QueryFieldLevel.BinaryOrFullText;
            }
            else if (fieldName == LucObject.FieldName.InFolder || fieldName == LucObject.FieldName.InTree ||
                     fieldName == LucObject.FieldName.Type || fieldName == LucObject.FieldName.TypeIs ||
                     _headOnlyFields.Contains(fieldName))
            {
                level = QueryFieldLevel.HeadOnly;
            }
            else
            {
                level = QueryFieldLevel.NoBinaryOrFullText;
            }

            return(level);
        }
Esempio n. 3
0
        internal static PerFieldIndexingInfo GetPerFieldIndexingInfo(string fieldName)
        {
            PerFieldIndexingInfo info = null;

            if (fieldName.Contains('.'))
            {
                info = Aspect.GetPerFieldIndexingInfo(fieldName);
            }

            if (info != null || Current.IndexingInfo.TryGetValue(fieldName, out info))
            {
                return(info);
            }

            return(null);
        }
Esempio n. 4
0
 internal void SetPerFieldIndexingInfo(string fieldName, PerFieldIndexingInfo indexingInfo)
 {
     _indexingInfo[fieldName] = indexingInfo;
 }
Esempio n. 5
0
 public string GetIndexFieldInfoErrorLog(string message, FieldSetting fieldSetting, PerFieldIndexingInfo indexingInfo)
 {
     return(message +
            " (Field name: " + this.Name +
            ", Field type: " + this.GetType().Name +
            ", Content path: " + this.Content.Path +
            ", ContentType name: " + this.Content.ContentType.Name +
            (fieldSetting == null ? string.Empty : ", FieldSetting type: " + fieldSetting.GetType().Name) +
            (indexingInfo == null ? string.Empty : ", IndexingInfo IsInIndex: " + indexingInfo.IsInIndex.ToString()) +
            ")");
 }
Esempio n. 6
0
        internal static void SetPerFieldIndexingInfo(string fieldName, string contentTypeName, PerFieldIndexingInfo indexingInfo)
        {
            PerFieldIndexingInfo origInfo;

            if (!_indexingInfoTable.TryGetValue(fieldName, out origInfo))
            {
                lock (_syncRoot)
                {
                    if (!_indexingInfoTable.TryGetValue(fieldName, out origInfo))
                    {
                        _indexingInfoTable.Add(fieldName, indexingInfo);
                        return;
                    }
                }
            }

            if (origInfo.IndexingMode == null)
            {
                origInfo.IndexingMode = indexingInfo.IndexingMode;
            }
            else if (indexingInfo.IndexingMode != null && indexingInfo.IndexingMode != origInfo.IndexingMode)
            {
                throw new ContentRegistrationException("Cannot override IndexingMode", contentTypeName, fieldName);
            }

            if (origInfo.IndexStoringMode == null)
            {
                origInfo.IndexStoringMode = indexingInfo.IndexStoringMode;
            }
            else if (indexingInfo.IndexStoringMode != null && indexingInfo.IndexStoringMode != origInfo.IndexStoringMode)
            {
                throw new ContentRegistrationException("Cannot override IndexStoringMode", contentTypeName, fieldName);
            }

            if (origInfo.TermVectorStoringMode == null)
            {
                origInfo.TermVectorStoringMode = indexingInfo.TermVectorStoringMode;
            }
            else if (indexingInfo.TermVectorStoringMode != null && indexingInfo.TermVectorStoringMode != origInfo.TermVectorStoringMode)
            {
                throw new ContentRegistrationException("Cannot override TermVectorStoringMode", contentTypeName, fieldName);
            }

            if (String.IsNullOrEmpty(origInfo.Analyzer))
            {
                origInfo.Analyzer = indexingInfo.Analyzer;
            }
            else if (!String.IsNullOrEmpty(indexingInfo.Analyzer) && indexingInfo.Analyzer != origInfo.Analyzer)
            {
                throw new ContentRegistrationException("Cannot override Analyzer", contentTypeName, fieldName);
            }
        }
Esempio n. 7
0
        internal static void SetPerFieldIndexingInfo(string fieldName, string contentTypeName, PerFieldIndexingInfo indexingInfo)
        {
            if (!_indexingInfoTable.ContainsKey(fieldName))
            {
                lock (_syncRoot)
                {
                    if (!_indexingInfoTable.ContainsKey(fieldName))
                    {
                        _indexingInfoTable.Add(fieldName, indexingInfo);
                        return;
                    }
                }
            }

            var origInfo = _indexingInfoTable[fieldName];

            //--
            if (origInfo.IndexingMode == null)
            {
                origInfo.IndexingMode = indexingInfo.IndexingMode;
            }
            else if (indexingInfo.IndexingMode != null && indexingInfo.IndexingMode != origInfo.IndexingMode)
            {
                throw new ContentRegistrationException("Cannot override IndexingMode", contentTypeName, fieldName);
            }
            //--
            if (origInfo.IndexStoringMode == null)
            {
                origInfo.IndexStoringMode = indexingInfo.IndexStoringMode;
            }
            else if (indexingInfo.IndexStoringMode != null && indexingInfo.IndexStoringMode != origInfo.IndexStoringMode)
            {
                throw new ContentRegistrationException("Cannot override IndexStoringMode", contentTypeName, fieldName);
            }
            //--
            if (origInfo.TermVectorStoringMode == null)
            {
                origInfo.TermVectorStoringMode = indexingInfo.TermVectorStoringMode;
            }
            else if (indexingInfo.TermVectorStoringMode != null && indexingInfo.TermVectorStoringMode != origInfo.TermVectorStoringMode)
            {
                throw new ContentRegistrationException("Cannot override TermVectorStoringMode", contentTypeName, fieldName);
            }
            //--
            if (String.IsNullOrEmpty(origInfo.Analyzer))
            {
                origInfo.Analyzer = indexingInfo.Analyzer;
            }
            else if (!String.IsNullOrEmpty(indexingInfo.Analyzer) && indexingInfo.Analyzer != origInfo.Analyzer)
            {
                throw new ContentRegistrationException("Cannot override Analyzer", contentTypeName, fieldName);
            }
            //--
            //if (String.IsNullOrEmpty(origInfo.Parser))
            //    origInfo.IndexFieldHandler = indexingInfo.IndexFieldHandler;
            //else if (!String.IsNullOrEmpty(indexingInfo.Parser) && indexingInfo.Parser != origInfo.Parser)
            //    throw new ContentRegistrationException("Cannot override Parser", contentTypeName, fieldName);
        }