コード例 #1
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            Dictionary<string, object> filterDict = serializer.Deserialize<Dictionary<string, object>>(reader);
            Dictionary<string, object> fieldDict = JsonConvert.DeserializeObject<Dictionary<string, object>>(filterDict.First().Value.ToString());

            string filterName = filterDict.First().Key;

            NormalizationTokenFilterBase filter = null;
            TokenFilterTypeEnum tokenFilterType = TokenFilterTypeEnum.Ngram;
            string tokenFilterTypeStr = fieldDict.GetString(_TYPE);
            tokenFilterType = TokenFilterTypeEnum.Find(tokenFilterTypeStr);
            if (tokenFilterType == null)
            {
                throw new Exception(tokenFilterTypeStr + " is not a valid token filter.");
            }
            else if (tokenFilterType == TokenFilterTypeEnum.ArabicNormalization)
            {
                filter = new ArabicNormalizationTokenFilter(filterName);
            }
            else if (tokenFilterType == TokenFilterTypeEnum.PersianNormalization)
            {
                filter = new PersianNormalizationTokenFilter(filterName);
            }
            else
            {
                throw new Exception(tokenFilterTypeStr + " is not a valid normalization token filter.");
            }

            TokenFilterBase.Deserialize(filter, fieldDict);

            return filter;
        }
コード例 #2
0
        public void PASS_Create()
        {
            ArabicNormalizationTokenFilter filter = new ArabicNormalizationTokenFilter("name")
            {
                Version = 2.4
            };

            Assert.IsNotNull(filter);
            Assert.AreEqual("name", filter.Name);
            Assert.AreEqual(2.4, filter.Version);
        }
コード例 #3
0
        public void PASS_Serialize()
        {
            ArabicNormalizationTokenFilter filter = new ArabicNormalizationTokenFilter("name")
            {
                Version = 2.4
            };

            string json = JsonConvert.SerializeObject(filter);
            Assert.IsNotNull(json);

            string expectedJson = "{\"name\":{\"type\":\"arabic_normalization\",\"version\":2.4}}";
            Assert.AreEqual(expectedJson, json);
        }