/// <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); }
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); }
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); }
internal void SetPerFieldIndexingInfo(string fieldName, PerFieldIndexingInfo indexingInfo) { _indexingInfo[fieldName] = indexingInfo; }
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()) + ")"); }
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); } }
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); }