goankur commented on a change in pull request #1928:
URL: https://github.com/apache/lucene-solr/pull/1928#discussion_r496966066



##########
File path: lucene/facet/src/test/org/apache/lucene/facet/FacetTestCase.java
##########
@@ -70,32 +70,51 @@ public Facets getTaxonomyFacetCounts(TaxonomyReader 
taxoReader, FacetsConfig con
    *
    * @param taxoReader {@link TaxonomyReader} used to read taxonomy during 
search. This instance is expected to be open for reading.
    * @param fc         {@link FacetsCollector} A collector with matching hits.
-   * @return {@code List<List<FacetLabel>} where outer list has one non-null 
entry per document
+   * @param dimension  facet dimension for which labels are requested. A null 
value fetches labels for all dimensions.
+   * @return {@code List<List<FacetLabel>} where outer list has one non-null 
entry per document.
    * and inner list contain all {@link FacetLabel} entries that belong to a 
document.
    * @throws IOException when a low-level IO issue occurs.
    */
-  public List<List<FacetLabel>> getAllTaxonomyFacetLabels(TaxonomyReader 
taxoReader, FacetsCollector fc) throws IOException {
+  public List<List<FacetLabel>> getAllTaxonomyFacetLabels(String dimension, 
TaxonomyReader taxoReader, FacetsCollector fc) throws IOException {
     List<List<FacetLabel>> actualLabels = new ArrayList<>();
     TaxonomyFacetLabels taxoLabels = new TaxonomyFacetLabels(taxoReader, 
FacetsConfig.DEFAULT_INDEX_FIELD_NAME);
-
     for (MatchingDocs m : fc.getMatchingDocs()) {
       FacetLabelReader facetLabelReader = 
taxoLabels.getFacetLabelReader(m.context);
-
       DocIdSetIterator disi = m.bits.iterator();
       while (disi.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) {
-        List<FacetLabel> facetLabels = new ArrayList<>();
-        int docId = disi.docID();
-        FacetLabel facetLabel = facetLabelReader.nextFacetLabel(docId);
-        while (facetLabel != null) {
-          facetLabels.add(facetLabel);
-          facetLabel = facetLabelReader.nextFacetLabel(docId);
-        }
-        actualLabels.add(facetLabels);
+        actualLabels.add(allFacetLabels(disi.docID(), dimension, 
facetLabelReader));
       }
     }
     return actualLabels;
   }
 
+  /**
+   * Utility method to get all facet labels for an input docId and dimension 
using the supplied
+   * {@link FacetLabelReader}.
+   *
+   * @param docId docId for which facet labels are needed.
+   * @param dimension Retain facet labels for supplied dimension only. A null 
value fetches all facet labels.
+   * @param facetLabelReader {@FacetLabelReader} instance use to get facet 
labels for input docId.
+   * @return {@code List<FacetLabel>} containing matching facet labels.
+   * @throws IOException when a low-level IO issue occurs while reading facet 
labels.
+   */
+  List<FacetLabel> allFacetLabels(int docId, String dimension, 
FacetLabelReader facetLabelReader) throws IOException {
+    List<FacetLabel> facetLabels = new ArrayList<>();
+    FacetLabel facetLabel;
+    if (dimension != null) {
+      for (facetLabel = facetLabelReader.nextFacetLabel(docId, dimension); 
facetLabel != null; ){

Review comment:
       Thanks @mikemccand.  This is fixed.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to