示例#1
0
        public void TestReusableTokenStream()
        {
            ArabicAnalyzer a = new ArabicAnalyzer(Version.LUCENE_CURRENT);

            AssertAnalyzesToReuse(a, "كبير", new String[] { "كبير" });
            AssertAnalyzesToReuse(a, "كبيرة", new String[] { "كبير" }); // feminine marker
        }
示例#2
0
        public void TestBasicFeatures()
        {
            ArabicAnalyzer a = new ArabicAnalyzer(Version.LUCENE_CURRENT);

            AssertAnalyzesTo(a, "كبير", new String[] { "كبير" });
            AssertAnalyzesTo(a, "كبيرة", new String[] { "كبير" }); // feminine marker

            AssertAnalyzesTo(a, "مشروب", new String[] { "مشروب" });
            AssertAnalyzesTo(a, "مشروبات", new String[] { "مشروب" });  // plural -at

            AssertAnalyzesTo(a, "أمريكيين", new String[] { "امريك" }); // plural -in
            AssertAnalyzesTo(a, "امريكي", new String[] { "امريك" });   // singular with bare alif

            AssertAnalyzesTo(a, "كتاب", new String[] { "كتاب" });
            AssertAnalyzesTo(a, "الكتاب", new String[] { "كتاب" }); // definite article

            AssertAnalyzesTo(a, "ما ملكت أيمانكم", new String[] { "ملكت", "ايمانكم" });
            AssertAnalyzesTo(a, "الذين ملكت أيمانكم", new String[] { "ملكت", "ايمانكم" }); // stopwords
        }
        internal static PerFieldAnalyzerWrapper BuildAnalyzer(Lucene.Net.Util.Version version, Dictionary <string, AyatColumnAttribute> fieldInfo)
        {
            var analyzer                = new StandardAnalyzer(version);
            var analyzer2               = new ArabicAnalyzer(version);
            var whitespaceAnalyzer      = new WhitespaceAnalyzer();
            var perFieldAnalyzerWrapper = new PerFieldAnalyzerWrapper(whitespaceAnalyzer);

            foreach (KeyValuePair <string, AyatColumnAttribute> current in fieldInfo)
            {
                switch (current.Value.Language)
                {
                case Language.Arabic:
                case Language.ArabicNoAraab:
                    perFieldAnalyzerWrapper.AddAnalyzer(current.Key, analyzer2);
                    continue;

                case Language.English:
                    perFieldAnalyzerWrapper.AddAnalyzer(current.Key, analyzer);
                    continue;
                }
                perFieldAnalyzerWrapper.AddAnalyzer(current.Key, whitespaceAnalyzer);
            }
            return(perFieldAnalyzerWrapper);
        }
示例#4
0
        public void TestCustomStopwords()
        {
            ArabicAnalyzer a = new ArabicAnalyzer(Version.LUCENE_CURRENT, new String[] { "the", "and", "a" });

            AssertAnalyzesTo(a, "The quick brown fox.", new String[] { "quick", "brown", "fox" });
        }