List of usage examples for org.apache.lucene.facet DrillDownQuery add
public void add(String dim, Query subQuery)
From source file:com.czw.search.lucene.example.facet.AssociationsFacetsExample.java
License:Apache License
/** User drills down on 'tags/solr'. */ private FacetResult drillDown() throws IOException { DirectoryReader indexReader = DirectoryReader.open(indexDir); IndexSearcher searcher = new IndexSearcher(indexReader); TaxonomyReader taxoReader = new DirectoryTaxonomyReader(taxoDir); // Passing no baseQuery means we drill down on all // documents ("browse only"): DrillDownQuery q = new DrillDownQuery(config); // Now user drills down on Publish Date/2010: q.add("tags", "solr"); FacetsCollector fc = new FacetsCollector(); FacetsCollector.search(searcher, q, 10, fc); // Retrieve results Facets facets = new TaxonomyFacetSumFloatAssociations("$genre", taxoReader, config, fc); FacetResult result = facets.getTopChildren(10, "genre"); indexReader.close();/*from ww w . ja v a 2 s. c om*/ taxoReader.close(); return result; }
From source file:com.czw.search.lucene.example.facet.DistanceFacetsExample.java
License:Apache License
/** User drills down on the specified range. */ public TopDocs drillDown(DoubleRange range) throws IOException { // Passing no baseQuery means we drill down on all // documents ("browse only"): DrillDownQuery q = new DrillDownQuery(null); final DoubleValuesSource vs = getDistanceValueSource(); q.add("field", range.getQuery(getBoundingBoxQuery(ORIGIN_LATITUDE, ORIGIN_LONGITUDE, range.max), vs)); DrillSideways ds = new DrillSideways(searcher, config, (TaxonomyReader) null) { @Override/*from ww w . j ava 2s. com*/ protected Facets buildFacetsResult(FacetsCollector drillDowns, FacetsCollector[] drillSideways, String[] drillSidewaysDims) throws IOException { assert drillSideways.length == 1; return new DoubleRangeFacetCounts("field", vs, drillSideways[0], ONE_KM, TWO_KM, FIVE_KM, TEN_KM); } }; return ds.search(q, 10).hits; }
From source file:com.czw.search.lucene.example.facet.RangeFacetsExample.java
License:Apache License
/** User drills down on the specified range. */ public TopDocs drillDown(LongRange range) throws IOException { // Passing no baseQuery means we drill down on all // documents ("browse only"): DrillDownQuery q = new DrillDownQuery(getConfig()); q.add("timestamp", LongPoint.newRangeQuery("timestamp", range.min, range.max)); return searcher.search(q, 10); }
From source file:com.czw.search.lucene.example.facet.RangeFacetsExample.java
License:Apache License
/** User drills down on the specified range, and also computes drill sideways counts. */ public DrillSideways.DrillSidewaysResult drillSideways(LongRange range) throws IOException { // Passing no baseQuery means we drill down on all // documents ("browse only"): DrillDownQuery q = new DrillDownQuery(getConfig()); q.add("timestamp", LongPoint.newRangeQuery("timestamp", range.min, range.max)); // DrillSideways only handles taxonomy and sorted set drill facets by default; to do range facets we must subclass and override the // buildFacetsResult method. DrillSideways.DrillSidewaysResult result = new DrillSideways(searcher, getConfig(), null, null) { @Override//from w w w . j ava 2 s . co m protected Facets buildFacetsResult(FacetsCollector drillDowns, FacetsCollector[] drillSideways, String[] drillSidewaysDims) throws IOException { // If we had other dims we would also compute their drill-down or drill-sideways facets here: assert drillSidewaysDims[0].equals("timestamp"); return new LongRangeFacetCounts("timestamp", drillSideways[0], PAST_HOUR, PAST_SIX_HOURS, PAST_DAY); } }.search(q, 10); return result; }
From source file:com.czw.search.lucene.example.facet.SimpleFacetsExample.java
License:Apache License
/** * User drills down on 'Publish Date/2011', and we * return facets for 'Author'//from w w w .ja va2 s.co m */ private FacetResult drillDown() throws IOException { DirectoryReader indexReader = DirectoryReader.open(indexDir); IndexSearcher searcher = new IndexSearcher(indexReader); TaxonomyReader taxoReader = new DirectoryTaxonomyReader(taxoDir); // Passing no baseQuery means we drill down on all // documents ("browse only"): DrillDownQuery q = new DrillDownQuery(config); // Now user drills down on Publish Date/2010: q.add("Publish Date", "2010"); FacetsCollector fc = new FacetsCollector(); FacetsCollector.search(searcher, q, 10, fc); // Retrieve results Facets facets = new FastTaxonomyFacetCounts(taxoReader, config, fc); FacetResult result = facets.getTopChildren(10, "Author"); indexReader.close(); taxoReader.close(); return result; }
From source file:com.czw.search.lucene.example.facet.SimpleFacetsExample.java
License:Apache License
/** * User drills down on 'Publish Date/2012', and we * return facets for both 'Publish Date' and 'Author', * using DrillSideways.// w w w .jav a 2 s . com */ private List<FacetResult> drillSideways() throws IOException { DirectoryReader indexReader = DirectoryReader.open(indexDir); IndexSearcher searcher = new IndexSearcher(indexReader); TaxonomyReader taxoReader = new DirectoryTaxonomyReader(taxoDir); // Passing no baseQuery means we drill down on all // documents ("browse only"): DrillDownQuery q = new DrillDownQuery(config); // Now user drills down on Publish Date/2010: q.add("Publish Date", "2010"); DrillSideways ds = new DrillSideways(searcher, config, taxoReader); DrillSidewaysResult result = ds.search(q, 10); // Retrieve results List<FacetResult> facets = result.facets.getAllDims(10); System.out.println("totalHits:" + result.hits.totalHits); ScoreDoc[] docs = result.hits.scoreDocs; System.out.println(searcher.doc(docs[0].doc)); indexReader.close(); taxoReader.close(); return facets; }
From source file:com.czw.search.lucene.example.facet.SimpleSortedSetFacetsExample.java
License:Apache License
/** * User drills down on 'Publish Year/2010'. *///from w w w. j a v a 2s . c o m private FacetResult drillDown() throws IOException { DirectoryReader indexReader = DirectoryReader.open(indexDir); IndexSearcher searcher = new IndexSearcher(indexReader); SortedSetDocValuesReaderState state = new DefaultSortedSetDocValuesReaderState(indexReader); // Now user drills down on Publish Year/2010: DrillDownQuery q = new DrillDownQuery(config); q.add("Publish Year", "2010"); FacetsCollector fc = new FacetsCollector(); FacetsCollector.search(searcher, q, 10, fc); // Retrieve results Facets facets = new SortedSetDocValuesFacetCounts(state, fc); FacetResult result = facets.getTopChildren(10, "Author"); indexReader.close(); return result; }
From source file:com.justinleegrant.myluceneplayground.SimpleFacetsExample.java
License:Apache License
/** User drills down on 'Publish Date/2010', and we * return facets for both 'Publish Date' and 'Author', * using DrillSideways. *//* w w w . jav a2s. c om*/ private List<FacetResult> drillSideways() throws IOException { DirectoryReader indexReader = DirectoryReader.open(indexDir); IndexSearcher searcher = new IndexSearcher(indexReader); TaxonomyReader taxoReader = new DirectoryTaxonomyReader(taxoDir); // Passing no baseQuery means we drill down on all // documents ("browse only"): DrillDownQuery q = new DrillDownQuery(config); // Now user drills down on Publish Date/2010: q.add("Publish Date", "2010"); DrillSideways ds = new DrillSideways(searcher, config, taxoReader); DrillSidewaysResult result = ds.search(q, 10); // Retrieve results List<FacetResult> facets = result.facets.getAllDims(10); indexReader.close(); taxoReader.close(); return facets; }
From source file:com.orientechnologies.lucene.collections.LuceneResultSet.java
License:Apache License
private void fetchFacet() { if (queryContext.facet) { FacetsCollector facetsCollector = new FacetsCollector(true); try {//from w w w .j a v a 2 s . c o m String[] pathFacet = null; if (queryContext.isDrillDown()) { DrillDownQuery drillDownQuery = new DrillDownQuery(queryContext.getFacetConfig(), query); String[] path = queryContext.getDrillDownQuery().split(":"); pathFacet = path[1].split("/"); drillDownQuery.add(path[0], pathFacet); FacetsCollector.search(queryContext.searcher, drillDownQuery, PAGE_SIZE, facetsCollector); } else { FacetsCollector.search(queryContext.searcher, query, PAGE_SIZE, facetsCollector); } Facets facets = new FastTaxonomyFacetCounts(queryContext.reader, queryContext.getFacetConfig(), facetsCollector); FacetResult facetResult = null; if (pathFacet != null) { facetResult = facets.getTopChildren(PAGE_SIZE, queryContext.getFacetField(), pathFacet); } else { facetResult = facets.getTopChildren(PAGE_SIZE, queryContext.getFacetField()); } if (facetResult != null) { List<ODocument> documents = new ArrayList<ODocument>(); // for (FacetResult facetResult : res) { ODocument doc = new ODocument(); doc.field("childCount", facetResult.childCount); doc.field("value", facetResult.value); doc.field("dim", facetResult.dim); List<ODocument> labelsAndValue = new ArrayList<ODocument>(); for (LabelAndValue labelValue : facetResult.labelValues) { ODocument doc1 = new ODocument(); doc1.field("label", labelValue.label); doc1.field("value", labelValue.value); labelsAndValue.add(doc1); } doc.field("labelsValue", labelsAndValue); documents.add(doc); queryContext.context.setVariable("$facet", documents); } // } } catch (IOException e) { e.printStackTrace(); } } }
From source file:com.orientechnologies.lucene.test.LuceneNativeFacet.java
License:Apache License
/** User drills down on 'Publish Date/2010', and we * return facets for both 'Publish Date' and 'Author', * using DrillSideways. *//*from w w w .j av a2 s. c o m*/ private List<FacetResult> drillSideways() throws IOException { DirectoryReader indexReader = DirectoryReader.open(indexDir); IndexSearcher searcher = new IndexSearcher(indexReader); TaxonomyReader taxoReader = new DirectoryTaxonomyReader(taxoDir); // Passing no baseQuery means we drill down on all // documents ("browse only"): DrillDownQuery q = new DrillDownQuery(config); // Now user drills down on Publish Date/2010: q.add("Publish Date", "2010"); DrillSideways ds = new DrillSideways(searcher, config, taxoReader); DrillSidewaysResult result = ds.search(q, 10); // Retrieve results List<FacetResult> facets = result.facets.getAllDims(10); indexReader.close(); taxoReader.close(); return facets; }