public Search ( |
||
query | ||
maxDocPerGroup | int | |
return | Lucene.Net.Search.Hits |
public Hits Search(Query query, int maxDocPerGroup)
{
var hitsPerGroup = new List<HitsPerFacet>();
DocIdSet queryDocidSet = new CachingWrapperFilter(new QueryWrapperFilter(query)).GetDocIdSet(_Reader);
var actions = new Action[_Groups.Count];
for (int i = 0; i < _Groups.Count; i++)
{
var h = new HitsPerFacet(new FacetName(_Groups[i].Key.ToArray()), _Reader, queryDocidSet, _Groups[i].Value, maxDocPerGroup);
hitsPerGroup.Add(h);
actions[i] = h.Calculate;
}
#if !NET35
Parallel.Invoke(actions);
#else
foreach (var action in actions)
action();
#endif
Hits hits = new Hits {HitsPerFacet = hitsPerGroup.ToArray()};
return hits;
}
SimpleFacetedSearch::Search ( |
/// <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); SimpleFacetedSearch sfs = new SimpleFacetedSearch(_Reader, new string[] { "source", "category" }); SimpleFacetedSearch.Hits hits = sfs.Search(query, 10); long totalHits = hits.TotalHitCount; foreach (SimpleFacetedSearch.HitsPerFacet hpg in hits.HitsPerFacet) { long hitCountPerGroup = hpg.HitCount; SimpleFacetedSearch.FacetName 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); } } }