public void Test2() { Query query = new QueryParser(Lucene.Net.Util.Version.LUCENE_29, "text", new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29)).Parse("block*"); var sfs = new SparseFacetedSearcher(_Reader, "category"); var hits = sfs.Search(query); Assert.AreEqual(4, hits.Facets.Count()); foreach (var hpg in hits.Facets) { if (hpg.Name[0] == "politics") { Assert.AreEqual(1, hpg.Count); } else if (hpg.Name[0] == "tech") { Assert.AreEqual(2, hpg.Count); } else if (hpg.Name[0] == "sport") { Assert.AreEqual(1, hpg.Count); } else { Assert.AreEqual(0, hpg.Count); } } Assert.AreEqual(4, hits.TotalHitCount); foreach (var hpg in hits.Facets) { foreach (Document doc in hpg.Documents) { string text = doc.GetField("text").StringValue(); Assert.IsTrue(text.Contains("block")); } } }
/// <summary> /// ***************************************************** /// * SAMPLE USAGE * /// ***************************************************** /// </summary> void HowToUse(string searchString) { Query query = new QueryParser(Lucene.Net.Util.Version.LUCENE_29, "text", new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29)).Parse(searchString); var sfs = new SparseFacetedSearcher(_Reader, "lang", "source", "category"); var hits = sfs.Search(query); long totalHits = hits.TotalHitCount; foreach (var hpg in hits.Facets) { long hitCountPerGroup = hpg.Count; var facetName = hpg.Name; for (int i = 0; i < facetName.Length; i++) { string part = facetName[i]; } foreach (Document doc in hpg.Documents) { string text = doc.GetField("text").StringValue(); System.Diagnostics.Debug.WriteLine(">>" + facetName + ": " + text); } } }
public void Test7() { Query query = new QueryParser(Lucene.Net.Util.Version.LUCENE_29, "text", new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29)).Parse("a"); var sfs = new SparseFacetedSearcher(_Reader, "category"); var hits = sfs.Search(query); Assert.AreEqual(0, hits.TotalHitCount, "Unexpected TotalHitCount"); foreach (var x in hits.Facets.Where(h => h.Count > 0)) { Assert.Fail("There must be no hit"); } }
public void Test6() { Query query = new MatchAllDocsQuery(); var sfs = new SparseFacetedSearcher(_Reader, "nosuchfield"); var hits = sfs.Search(query); Assert.AreEqual(0, hits.TotalHitCount); Assert.AreEqual(0, hits.Facets.Count()); }
public void Test5() { Query query = new MatchAllDocsQuery(); var sfs = new SparseFacetedSearcher(_Reader, "category"); var hits = sfs.Search(query); Assert.AreEqual(7, hits.TotalHitCount); }
public void Test4() { Query query = new QueryParser(Lucene.Net.Util.Version.LUCENE_29, "text", new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29)).Parse("xxxxxxxxxxxxx"); var sfs = new SparseFacetedSearcher(_Reader, "category"); var hits = sfs.Search(query); var facets = hits.Facets.ToArray(); Assert.AreEqual(4, facets.Length); Assert.AreEqual(0, facets[0].Count); Assert.AreEqual(0, facets[1].Count); Assert.AreEqual(0, facets[2].Count); }
public void Test3() { Query query = new QueryParser(Lucene.Net.Util.Version.LUCENE_29, "text", new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29)).Parse("block*"); var sfs = new SparseFacetedSearcher(_Reader, "lang", "source", "category"); var hits = sfs.Search(query); Assert.AreEqual(6, hits.Facets.Count()); int nohit = 0; foreach (var hpg in hits.Facets) { //Test for [System.Collections.Generic.KeyNotFoundException : The given key was not present in the dictionary.] var x = hits[hpg.Name]; var y = hits[hpg.Name.ToString()]; if (hpg.Name[0] == "us" && hpg.Name[1] == "CCN" && hpg.Name[2] == "politics") { Assert.AreEqual(1, hpg.Count); } else if (hpg.Name[0] == "en" && hpg.Name[1] == "BCC" && hpg.Name[2] == "tech") { Assert.AreEqual(1, hpg.Count); } else if (hpg.Name[0] == "us" && hpg.Name[1] == "CCN" && hpg.Name[2] == "sport") { Assert.AreEqual(1, hpg.Count); } else if (hpg.Name[0] == "en" && hpg.Name[1] == "CCN" && hpg.Name[2] == "tech") { Assert.AreEqual(1, hpg.Count); } else { nohit++; Assert.AreEqual(0, hpg.Count); } } Assert.AreEqual(2, nohit); Assert.AreEqual(4, hits.TotalHitCount); foreach (var hpg in hits.Facets) { foreach (Document doc in hpg.Documents) { string text = doc.GetField("text").StringValue(); Assert.IsTrue(text.Contains("block")); } } }