You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2014/03/02 12:46:05 UTC
svn commit: r1573289 - in /lucene/dev/branches/branch_4x: ./ lucene/
lucene/demo/
lucene/demo/src/java/org/apache/lucene/demo/facet/SimpleFacetsExample.java
lucene/demo/src/test/org/apache/lucene/demo/facet/TestSimpleFacetsExample.java
Author: shaie
Date: Sun Mar 2 11:46:05 2014
New Revision: 1573289
URL: http://svn.apache.org/r1573289
Log:
LUCENE-5474: Add example for retrieving facet counts without retrieving documents
Modified:
lucene/dev/branches/branch_4x/ (props changed)
lucene/dev/branches/branch_4x/lucene/ (props changed)
lucene/dev/branches/branch_4x/lucene/demo/ (props changed)
lucene/dev/branches/branch_4x/lucene/demo/src/java/org/apache/lucene/demo/facet/SimpleFacetsExample.java
lucene/dev/branches/branch_4x/lucene/demo/src/test/org/apache/lucene/demo/facet/TestSimpleFacetsExample.java
Modified: lucene/dev/branches/branch_4x/lucene/demo/src/java/org/apache/lucene/demo/facet/SimpleFacetsExample.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/demo/src/java/org/apache/lucene/demo/facet/SimpleFacetsExample.java?rev=1573289&r1=1573288&r2=1573289&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/demo/src/java/org/apache/lucene/demo/facet/SimpleFacetsExample.java (original)
+++ lucene/dev/branches/branch_4x/lucene/demo/src/java/org/apache/lucene/demo/facet/SimpleFacetsExample.java Sun Mar 2 11:46:05 2014
@@ -91,7 +91,7 @@ public class SimpleFacetsExample {
}
/** User runs a query and counts facets. */
- private List<FacetResult> search() throws IOException {
+ private List<FacetResult> facetsWithSearch() throws IOException {
DirectoryReader indexReader = DirectoryReader.open(indexDir);
IndexSearcher searcher = new IndexSearcher(indexReader);
TaxonomyReader taxoReader = new DirectoryTaxonomyReader(taxoDir);
@@ -117,6 +117,34 @@ public class SimpleFacetsExample {
return results;
}
+ /** User runs a query and counts facets only without collecting the matching documents.*/
+ private List<FacetResult> facetsOnly() throws IOException {
+ DirectoryReader indexReader = DirectoryReader.open(indexDir);
+ IndexSearcher searcher = new IndexSearcher(indexReader);
+ TaxonomyReader taxoReader = new DirectoryTaxonomyReader(taxoDir);
+
+ FacetsCollector fc = new FacetsCollector();
+
+ // MatchAllDocsQuery is for "browsing" (counts facets
+ // for all non-deleted docs in the index); normally
+ // you'd use a "normal" query:
+ searcher.search(new MatchAllDocsQuery(), null /*Filter */, fc);
+
+ // Retrieve results
+ List<FacetResult> results = new ArrayList<FacetResult>();
+
+ // Count both "Publish Date" and "Author" dimensions
+ Facets facets = new FastTaxonomyFacetCounts(taxoReader, config, fc);
+
+ results.add(facets.getTopChildren(10, "Author"));
+ results.add(facets.getTopChildren(10, "Publish Date"));
+
+ indexReader.close();
+ taxoReader.close();
+
+ return results;
+ }
+
/** User drills down on 'Publish Date/2010'. */
private FacetResult drillDown() throws IOException {
DirectoryReader indexReader = DirectoryReader.open(indexDir);
@@ -143,9 +171,15 @@ public class SimpleFacetsExample {
}
/** Runs the search example. */
+ public List<FacetResult> runFacetOnly() throws IOException {
+ index();
+ return facetsOnly();
+ }
+
+ /** Runs the search example. */
public List<FacetResult> runSearch() throws IOException {
index();
- return search();
+ return facetsWithSearch();
}
/** Runs the drill-down example. */
@@ -158,10 +192,18 @@ public class SimpleFacetsExample {
public static void main(String[] args) throws Exception {
System.out.println("Facet counting example:");
System.out.println("-----------------------");
+ SimpleFacetsExample example1 = new SimpleFacetsExample();
+ List<FacetResult> results1 = example1.runFacetOnly();
+ System.out.println("Author: " + results1.get(0));
+ System.out.println("Publish Date: " + results1.get(1));
+
+ System.out.println("Facet counting example (combined facets and search):");
+ System.out.println("-----------------------");
SimpleFacetsExample example = new SimpleFacetsExample();
List<FacetResult> results = example.runSearch();
System.out.println("Author: " + results.get(0));
System.out.println("Publish Date: " + results.get(1));
+
System.out.println("\n");
System.out.println("Facet drill-down example (Publish Date/2010):");
@@ -169,4 +211,4 @@ public class SimpleFacetsExample {
System.out.println("Author: " + example.runDrillDown());
}
-}
+}
\ No newline at end of file
Modified: lucene/dev/branches/branch_4x/lucene/demo/src/test/org/apache/lucene/demo/facet/TestSimpleFacetsExample.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/lucene/demo/src/test/org/apache/lucene/demo/facet/TestSimpleFacetsExample.java?rev=1573289&r1=1573288&r2=1573289&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/lucene/demo/src/test/org/apache/lucene/demo/facet/TestSimpleFacetsExample.java (original)
+++ lucene/dev/branches/branch_4x/lucene/demo/src/test/org/apache/lucene/demo/facet/TestSimpleFacetsExample.java Sun Mar 2 11:46:05 2014
@@ -29,6 +29,15 @@ import org.junit.Test;
public class TestSimpleFacetsExample extends LuceneTestCase {
@Test
+ public void testFacetOnly() throws Exception {
+ List<FacetResult> results = new SimpleFacetsExample().runFacetOnly();
+ assertEquals(2, results.size());
+ assertEquals("dim=Author path=[] value=5 childCount=4\n Lisa (2)\n Bob (1)\n Susan (1)\n Frank (1)\n", results.get(0).toString());
+ assertEquals("dim=Publish Date path=[] value=5 childCount=3\n 2010 (2)\n 2012 (2)\n 1999 (1)\n", results.get(1).toString());
+ }
+
+
+ @Test
public void testSimple() throws Exception {
List<FacetResult> results = new SimpleFacetsExample().runSearch();
assertEquals(2, results.size());