Author: echatellier Date: 2011-08-29 09:45:28 +0200 (Mon, 29 Aug 2011) New Revision: 494 Url: http://nuiton.org/repositories/revision/sandbox/494 Log: Update code with group by Modified: bobobrowselucenefacets/src/main/java/org/bobo/TestLuceneGroupsFacets.java Modified: bobobrowselucenefacets/src/main/java/org/bobo/TestLuceneGroupsFacets.java =================================================================== --- bobobrowselucenefacets/src/main/java/org/bobo/TestLuceneGroupsFacets.java 2011-08-26 18:07:29 UTC (rev 493) +++ bobobrowselucenefacets/src/main/java/org/bobo/TestLuceneGroupsFacets.java 2011-08-29 07:45:28 UTC (rev 494) @@ -28,8 +28,7 @@ import java.io.File; import java.io.IOException; import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; @@ -45,11 +44,7 @@ import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.queryParser.QueryParser; -import org.apache.lucene.search.CachingCollector; -import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; -import org.apache.lucene.search.ScoreDoc; -import org.apache.lucene.search.Sort; import org.apache.lucene.store.Directory; import org.apache.lucene.store.LockObtainFailedException; import org.apache.lucene.store.NIOFSDirectory; @@ -63,11 +58,13 @@ import com.browseengine.bobo.api.BrowseHit; import com.browseengine.bobo.api.BrowseRequest; import com.browseengine.bobo.api.BrowseResult; +import com.browseengine.bobo.api.BrowseSelection; import com.browseengine.bobo.api.FacetAccessible; import com.browseengine.bobo.api.FacetSpec; import com.browseengine.bobo.api.FacetSpec.FacetSortSpec; import com.browseengine.bobo.facets.FacetHandler; import com.browseengine.bobo.facets.impl.SimpleFacetHandler; +import com.browseengine.bobo.facets.impl.SimpleGroupbyFacetHandler; /** * Test les facets sur les range le collecteurs basé sur les groupes, en lien @@ -150,10 +147,13 @@ public static void search() throws IOException, ParseException, BrowseException { // subject facet handler + //LinkedHashSet<String> subjectFields = new LinkedHashSet<String>(); + //subjectFields.add("subject"); + //SimpleGroupbyFacetHandler groupByFacet = new SimpleGroupbyFacetHandler("groupby", subjectFields); + SimpleFacetHandler colorFacet = new SimpleFacetHandler("color"); SimpleFacetHandler subjectFacet = new SimpleFacetHandler("subject"); - SimpleFacetHandler colorFacet = new SimpleFacetHandler("color"); - List<FacetHandler<?>> handlerList = Arrays.asList(new FacetHandler<?>[] { subjectFacet, colorFacet }); + List<FacetHandler<?>> handlerList = Arrays.asList(new FacetHandler<?>[] { colorFacet, subjectFacet }); // opening a lucene index IndexReader reader = IndexReader.open(getIndexDirectory(), true); @@ -168,7 +168,7 @@ br.setGroupBy("subject"); // parse a query - QueryParser parser = new QueryParser(Version.LUCENE_33, "content", analyser); + QueryParser parser = new QueryParser(Version.LUCENE_33, "text", analyser); //Query q = parser.parse("*:*"); Query q = parser.parse("title:serie"); br.setQuery(q); @@ -177,21 +177,44 @@ FacetSpec dateSpec = new FacetSpec(); dateSpec.setOrderBy(FacetSortSpec.OrderHitsDesc); br.setFacetSpec("color", dateSpec); + + //FacetSpec groupBySpec = new FacetSpec(); + //subjectSpec.setOrderBy(FacetSortSpec.OrderHitsDesc); + //groupBySpec.setExpandSelection(true); + //subjectSpec.setMaxCount(1); + //subjectSpec.setMinHitCount(2); + //br.setFacetSpec("groupby", groupBySpec); + + FacetSpec subject2Spec = new FacetSpec(); + //subjectSpec.setOrderBy(FacetSortSpec.OrderHitsDesc); + //subjectSpec.setExpandSelection(true); + br.setFacetSpec("subject", subject2Spec); + /*BrowseSelection sel = new BrowseSelection("groupby"); + sel.addValue("s1"); + br.addSelection(sel);*/ + // perform browse Browsable browser = new BoboBrowser(boboReader); BrowseResult result = browser.browse(br); Map<String, FacetAccessible> facetMap = result.getFacetMap(); int totalHits = result.getNumHits(); + System.out.println("Total hit count : " + totalHits); + System.out.println("Total getNumGroups : " + result.getNumGroups()); + BrowseHit[] hits = result.getHits(); for (BrowseHit hit : hits) { System.out.println("Group value : " + hit.getGroupValue() + " : " + hit.getGroupHitsCount()); } + //FacetAccessible subjectFacets = facetMap.get("subject"); + //System.out.println(subjectFacets); + if (facetMap != null) { FacetAccessible dateFacets = facetMap.get("color"); List<BrowseFacet> facetVals = dateFacets.getFacets(); + //List<BrowseFacet> facetVals = result.getGroupAccessible().getFacets(); for (BrowseFacet facetVal : facetVals) { System.out.println("Facet subject " + facetVal.getValue() + "(" + facetVal.getFacetValueHitCount() + ")"); }