internal static void Serialize(PropertyAnalyzer analyzer, Dictionary<string, object> fieldDict) { if (analyzer == null) return; if (fieldDict == null) fieldDict = new Dictionary<string, object>(); if (analyzer.Analyzer != null) { fieldDict.Add(_ANALYZER, analyzer.Analyzer.Name); } else { fieldDict.AddObject(_INDEX_ANALYZER, analyzer.IndexAnalyzer.Name); if(analyzer.SearchAnalyzer != null) { fieldDict.AddObject(_SEARCH_ANALYZER, analyzer.SearchAnalyzer.Name); } } }
internal static PropertyAnalyzer Deserialize(Dictionary<string, object> fieldDict) { if (fieldDict == null || !fieldDict.Any()) return null; PropertyAnalyzer propertyAnalyzer = null; if (fieldDict.ContainsKey(_ANALYZER)) { propertyAnalyzer = new PropertyAnalyzer(GetAnalyzer(fieldDict.GetString(_ANALYZER))); } else if (fieldDict.ContainsKey(_INDEX_ANALYZER)) { IAnalyzer searchAnalyzer = null; try { searchAnalyzer = GetAnalyzer(fieldDict.GetStringOrDefault(_SEARCH_ANALYZER)); } catch{} propertyAnalyzer = new PropertyAnalyzer( GetAnalyzer(fieldDict.GetString(_INDEX_ANALYZER)), searchAnalyzer); } return propertyAnalyzer; }