public virtual void AddFieldConfigurations(XmlNode configNode) { Assert.ArgumentNotNull(configNode, "configNode"); var idString = XmlUtil.GetAttribute("id", configNode); ID fieldId; if (!ID.TryParse(idString, out fieldId)) { return; } FieldConfiguration fieldConfiguration = new FieldConfiguration(); bool store; fieldConfiguration.Store = bool.TryParse(XmlUtil.GetAttribute("store", configNode), out store) && store; bool analyze; fieldConfiguration.Analyze = bool.TryParse(XmlUtil.GetAttribute("analyze", configNode), out analyze) && analyze; FieldConfigurations.Add(fieldId, fieldConfiguration); }
protected void AddDateTimeField(Document document, DateField field, FieldConfiguration fieldConfiguration) { if (field == null || fieldConfiguration == null) { return; } string fieldName = SitecoreQueryBuilderExtensions.GetEncodedFieldName(field.InnerField.Name); if (fieldConfiguration.Analyze) { document.AddAnalysedField(fieldName, DateTools.DateToString(field.DateTime, DateTools.Resolution.MINUTE), fieldConfiguration.Store); return; } document.AddNonAnalysedField(fieldName, DateTools.DateToString(field.DateTime, DateTools.Resolution.MINUTE), fieldConfiguration.Store); }
protected virtual FieldConfiguration GetFieldConfiguration(Field field, bool analyze = true, bool store = false) { // todo: Allow this to read from the item FieldConfiguration fieldConfiguration = new FieldConfiguration { FieldId = field.ID, Analyze = analyze, Store = store }; if (FieldConfigurations.ContainsKey(field.ID)) { fieldConfiguration = FieldConfigurations[field.ID]; } return fieldConfiguration; }
protected virtual void AddValueField(Document document, Field field, FieldConfiguration fieldConfiguration, bool stripHtml = false) { if (field == null || fieldConfiguration == null) { return; } ID valueId; string fieldValue = field.Value; if (stripHtml && !String.IsNullOrEmpty(fieldValue)) { var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(fieldValue); fieldValue = htmlDoc.DocumentNode.InnerText; } if (ID.TryParse(field.Value, out valueId)) { fieldConfiguration.Analyze = false; fieldValue = valueId.ToLuceneId(); } string fieldName = SitecoreQueryBuilderExtensions.GetEncodedFieldName(field.Name); if (fieldConfiguration.Analyze) { document.AddAnalysedField(fieldName, fieldValue, fieldConfiguration.Store); return; } document.AddNonAnalysedField(fieldName, fieldValue, fieldConfiguration.Store); }
protected virtual void AddMultilistField(Document document, MultilistField field, FieldConfiguration fieldConfiguration) { if (field == null || fieldConfiguration == null) { return; } StringBuilder fieldBuilder = new StringBuilder(); bool first = true; foreach (ID targetId in field.TargetIDs) { if (!first) { fieldBuilder.Append(" "); } first = false; fieldBuilder.Append(targetId.ToLuceneId()); } string fieldName = SitecoreQueryBuilderExtensions.GetEncodedFieldName(field.InnerField.Name); if (fieldConfiguration.Analyze) { document.AddAnalysedField(fieldName, fieldBuilder.ToString(), fieldConfiguration.Store); return; } document.AddNonAnalysedField(fieldName, fieldBuilder.ToString(), fieldConfiguration.Store); }
protected virtual void AddLinkField(Document document, LinkField field, FieldConfiguration fieldConfiguration) { if (field == null || fieldConfiguration == null) { return; } string fieldName = SitecoreQueryBuilderExtensions.GetEncodedFieldName(field.InnerField.Name); if (fieldConfiguration.Analyze) { document.AddAnalysedField(fieldName, field.TargetID.ToLuceneId(), fieldConfiguration.Store); return; } document.AddNonAnalysedField(fieldName, field.TargetID.ToLuceneId(), fieldConfiguration.Store); }