コード例 #1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldDetectLargeAmountsOfCollisions()
        public virtual void ShouldDetectLargeAmountsOfCollisions()
        {
            // GIVEN
            IdMapper       mapper = mapper(new StringEncoder(), Radix.String, NO_MONITOR);
            int            count  = 20_000;
            IList <object> ids    = new List <object>();
            long           id     = 0;

            // Generate and add all input ids
            for (int elements = 0; elements < count; elements++)
            {
                string inputId = System.Guid.randomUUID().ToString();
                for (int i = 0; i < 2; i++)
                {
                    ids.Add(inputId);
                    mapper.Put(inputId, id++, GLOBAL);
                }
            }

            // WHEN
            CountingCollector collector = new CountingCollector();

            mapper.Prepare(Values(ids.ToArray()), collector, NONE);

            // THEN
            assertEquals(count, collector.Count);
        }
コード例 #2
0
        public virtual void TestBooleanQuery()
        {
            TermQuery aQuery = new TermQuery(new Term("f", "a"));
            TermQuery dQuery = new TermQuery(new Term("f", "d"));
            TermQuery cQuery = new TermQuery(new Term("f", "c"));
            TermQuery yQuery = new TermQuery(new Term("f", "y"));

            BooleanQuery query = new BooleanQuery();
            BooleanQuery inner = new BooleanQuery();

            inner.Add(cQuery, Occur.SHOULD);
            inner.Add(yQuery, Occur.MUST_NOT);
            query.Add(inner, Occur.MUST);
            query.Add(aQuery, Occur.MUST);
            query.Add(dQuery, Occur.MUST);

            // Only needed in Java6; Java7+ has a @SafeVarargs annotated Arrays#asList()!
            // see http://docs.oracle.com/javase/7/docs/api/java/lang/SafeVarargs.html
            IEnumerable <ISet <string> > occurList = new ISet <string>[] { new JCG.HashSet <string> {
                                                                               "MUST"
                                                                           }, new JCG.HashSet <string> {
                                                                               "MUST", "SHOULD"
                                                                           } };

            foreach (var occur in occurList)
            {
                var c = new CountingCollector(TopScoreDocCollector.Create(10, true), occur);
                s.Search(query, null, c);
                int maxDocs = s.IndexReader.MaxDoc;
                Assert.AreEqual(maxDocs, c.DocCounts.Count);
                bool includeOptional = occur.Contains("SHOULD");
                for (int i = 0; i < maxDocs; i++)
                {
                    IDictionary <Query, float?> doc0 = c.DocCounts[i];
                    Assert.AreEqual(includeOptional ? 5 : 4, doc0.Count);
                    Assert.AreEqual(1.0F, doc0[aQuery].GetValueOrDefault(), FLOAT_TOLERANCE);
                    Assert.AreEqual(4.0F, doc0[dQuery].GetValueOrDefault(), FLOAT_TOLERANCE);
                    if (includeOptional)
                    {
                        Assert.AreEqual(3.0F, doc0[cQuery].GetValueOrDefault(), FLOAT_TOLERANCE);
                    }

                    IDictionary <Query, float?> doc1 = c.DocCounts[++i];
                    Assert.AreEqual(includeOptional ? 5 : 4, doc1.Count);
                    Assert.AreEqual(1.0F, doc1[aQuery].GetValueOrDefault(), FLOAT_TOLERANCE);
                    Assert.AreEqual(1.0F, doc1[dQuery].GetValueOrDefault(), FLOAT_TOLERANCE);
                    if (includeOptional)
                    {
                        Assert.AreEqual(1.0F, doc1[cQuery].GetValueOrDefault(), FLOAT_TOLERANCE);
                    }
                }
            }
        }
コード例 #3
0
        public virtual void TestTermQuery()
        {
            TermQuery         q = new TermQuery(new Term("f", "d"));
            CountingCollector c = new CountingCollector(TopScoreDocCollector.Create(10, true));

            s.Search(q, null, c);
            int maxDocs = s.IndexReader.MaxDoc;

            Assert.AreEqual(maxDocs, c.DocCounts.Count);
            for (int i = 0; i < maxDocs; i++)
            {
                IDictionary <Query, float?> doc0 = c.DocCounts[i];
                Assert.AreEqual(1, doc0.Count);
                Assert.AreEqual(4.0F, doc0[q], FLOAT_TOLERANCE);

                IDictionary <Query, float?> doc1 = c.DocCounts[++i];
                Assert.AreEqual(1, doc1.Count);
                Assert.AreEqual(1.0F, doc1[q], FLOAT_TOLERANCE);
            }
        }
コード例 #4
0
ファイル: SynLookup.cs プロジェクト: synhershko/lucene.net
		public static void  Main(System.String[] args)
		{
			if (args.Length != 2)
			{
				System.Console.Out.WriteLine(typeof(SynLookup) + " <index path> <word>");
				return;
			}
			
			using (var directory = FSDirectory.Open(new DirectoryInfo(args[0])))
			{
				using (var searcher = new IndexSearcher(directory, true))
				{

					String word = args[1];
					Query query = new TermQuery(new Term(Syns2Index.F_WORD, word));
					var countingCollector = new CountingCollector();
					searcher.Search(query, countingCollector);

					if (countingCollector.numHits == 0)
					{
						Console.Out.WriteLine("No synonyms found for " + word);
					}
					else
					{
						Console.Out.WriteLine("Synonyms found for \"" + word + "\":");
					}

					var hits = searcher.Search(query, countingCollector.numHits).ScoreDocs;

					foreach (var v in
						hits.Select(t => searcher.Doc(t.Doc)).Select(doc => doc.GetValues(Syns2Index.F_SYN)).SelectMany(values => values))
					{
						Console.Out.WriteLine(v);
					}

				}
			}
		}
コード例 #5
0
ファイル: SynLookup.cs プロジェクト: zfxsss/lucenenet
        public static void  Main(System.String[] args)
        {
            if (args.Length != 2)
            {
                System.Console.Out.WriteLine(typeof(SynLookup) + " <index path> <word>");
                return;
            }

            using (var directory = FSDirectory.Open(new DirectoryInfo(args[0])))
            {
                using (var searcher = new IndexSearcher(directory, true))
                {
                    String word              = args[1];
                    Query  query             = new TermQuery(new Term(Syns2Index.F_WORD, word));
                    var    countingCollector = new CountingCollector();
                    searcher.Search(query, countingCollector);

                    if (countingCollector.numHits == 0)
                    {
                        Console.Out.WriteLine("No synonyms found for " + word);
                    }
                    else
                    {
                        Console.Out.WriteLine("Synonyms found for \"" + word + "\":");
                    }

                    var hits = searcher.Search(query, countingCollector.numHits).ScoreDocs;

                    foreach (var v in
                             hits.Select(t => searcher.Doc(t.Doc)).Select(doc => doc.GetValues(Syns2Index.F_SYN)).SelectMany(values => values))
                    {
                        Console.Out.WriteLine(v);
                    }
                }
            }
        }
コード例 #6
0
        public virtual void TestBooleanQuery()
        {
            TermQuery aQuery = new TermQuery(new Term("f", "a"));
            TermQuery dQuery = new TermQuery(new Term("f", "d"));
            TermQuery cQuery = new TermQuery(new Term("f", "c"));
            TermQuery yQuery = new TermQuery(new Term("f", "y"));

            BooleanQuery query = new BooleanQuery();
            BooleanQuery inner = new BooleanQuery();

            inner.Add(cQuery, Occur.SHOULD);
            inner.Add(yQuery, Occur.MUST_NOT);
            query.Add(inner, Occur.MUST);
            query.Add(aQuery, Occur.MUST);
            query.Add(dQuery, Occur.MUST);

            // Only needed in Java6; Java7+ has a @SafeVarargs annotated Arrays#asList()!
            // see http://docs.oracle.com/javase/7/docs/api/java/lang/SafeVarargs.html
            IEnumerable<ISet<string>> occurList = Arrays.AsList(Collections.Singleton("MUST"), new HashSet<string>(Arrays.AsList("MUST", "SHOULD")));

            foreach (var occur in occurList)
            {
                var c = new CountingCollector(TopScoreDocCollector.Create(10, true), occur);
                s.Search(query, null, c);
                int maxDocs = s.IndexReader.MaxDoc;
                Assert.AreEqual(maxDocs, c.DocCounts.Count);
                bool includeOptional = occur.Contains("SHOULD");
                for (int i = 0; i < maxDocs; i++)
                {
                    IDictionary<Query, float?> doc0 = c.DocCounts[i];
                    Assert.AreEqual(includeOptional ? 5 : 4, doc0.Count);
                    Assert.AreEqual(1.0F, doc0[aQuery], FLOAT_TOLERANCE);
                    Assert.AreEqual(4.0F, doc0[dQuery], FLOAT_TOLERANCE);
                    if (includeOptional)
                    {
                        Assert.AreEqual(3.0F, doc0[cQuery], FLOAT_TOLERANCE);
                    }

                    IDictionary<Query, float?> doc1 = c.DocCounts[++i];
                    Assert.AreEqual(includeOptional ? 5 : 4, doc1.Count);
                    Assert.AreEqual(1.0F, doc1[aQuery], FLOAT_TOLERANCE);
                    Assert.AreEqual(1.0F, doc1[dQuery], FLOAT_TOLERANCE);
                    if (includeOptional)
                    {
                        Assert.AreEqual(1.0F, doc1[cQuery], FLOAT_TOLERANCE);
                    }
                }
            }
        }
コード例 #7
0
        public virtual void TestTermQuery()
        {
            TermQuery q = new TermQuery(new Term("f", "d"));
            CountingCollector c = new CountingCollector(TopScoreDocCollector.Create(10, true));
            s.Search(q, null, c);
            int maxDocs = s.IndexReader.MaxDoc;
            Assert.AreEqual(maxDocs, c.DocCounts.Count);
            for (int i = 0; i < maxDocs; i++)
            {
                IDictionary<Query, float?> doc0 = c.DocCounts[i];
                Assert.AreEqual(1, doc0.Count);
                Assert.AreEqual(4.0F, doc0[q], FLOAT_TOLERANCE);

                IDictionary<Query, float?> doc1 = c.DocCounts[++i];
                Assert.AreEqual(1, doc1.Count);
                Assert.AreEqual(1.0F, doc1[q], FLOAT_TOLERANCE);
            }
        }