private Analyzer GetAnalyzer(string fieldName)
        {
            // Hard-code the _Text field
            if (fieldName == "_Text")
            {
                return(_analyzers[typeof(StandardAnalyzer).FullName]);
            }

            // For everything else, ask the ContentTypeManager
            var pfii = ContentTypeManager.GetPerFieldIndexingInfo(fieldName);

            // Return the default analyzer if indexing info was not found.
            if (pfii == null)
            {
                return(_defaultAnalyzer);
            }

            // Get analyzername by IndexFieldHandler
            string analyzerName = pfii.Analyzer;

            if (string.IsNullOrEmpty(analyzerName))
            {
                analyzerName = pfii.IndexFieldHandler.GetDefaultAnalyzerName();
            }

            // Return the default analyzer if it is not specified any way.
            if (string.IsNullOrEmpty(analyzerName))
            {
                return(_defaultAnalyzer);
            }

            Analyzer analyzer;

            if (_analyzers.TryGetValue(analyzerName, out analyzer))
            {
                return(analyzer);
            }

            // Find the type
            var analyzerType = TypeHandler.GetType(analyzerName);

            // If it doesn't exist, return the default analyzer
            if (analyzerType == null)
            {
                return(_defaultAnalyzer);
            }

            // Store the instance in cache
            analyzer = (Analyzer)Activator.CreateInstance(analyzerType);
            _analyzers[analyzerName] = analyzer;

            // Return analyzer
            return(analyzer);
        }
Example #2
0
        internal static SnQueryPredicate GetPathPredicate(string path, bool inTree)
        {
            if (path == null)
            {
                return(null);
            }
            var fieldName = inTree ? IndexFieldName.InTree : IndexFieldName.InFolder;
            var converter = ContentTypeManager.GetPerFieldIndexingInfo(fieldName).IndexFieldHandler;

            return(new SimplePredicate(fieldName, converter.ConvertToTermValue(path)));
        }
Example #3
0
 public IPerFieldIndexingInfo GetPerFieldIndexingInfo(string fieldName)
 {
     return(ContentTypeManager.GetPerFieldIndexingInfo(fieldName));
 }