Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
 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;
 }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }