[ 
https://issues.apache.org/jira/browse/SOLR-12398?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16518191#comment-16518191
 ] 

David Smiley commented on SOLR-12398:
-------------------------------------

Patch notes:
 * Created new FacetHeatmap subclass of FacetRequest
 ** Unlike the other FacetRequest subclasses, I chose for this class to have 
all the functionality needed internally as sub-classes as I think it's better 
organized this way than having separate top-level Parser, Processor, and 
Merger.  Thus we have just one more top level class and one new source file.
 * Moved most logic in SpatialHeatmapFacets into FacetHeatmap
 * SpatialHeatmapFacets still exists (identical API) but is integration glue to 
work with FacetHeatmap.  It used FacetHeatmap to compute facets and also uses 
it's distributed/sharded merge logic.  I think we lost the debug timing 
diagnostic for PNG in particular for classic facet heatmaps, and I think that's 
fine.
 * Moved SpatialHeatmapFacetsTest to same package as FacetHeatmap, both because 
this is where the code being tested primarily lives now and because of package 
accessibility stuff for testing.
 * SpatialHeatmapFacetsTest.test is now duplicated to testClassicFacets 
testJsonFacets and with mostly the same code but tweaks to request differently. 
 I hate duplicating code but it would be pretty awkward to have one method, I 
think.  At least it's in the same class.
 ** Added test for hanging sub-heatmaps off of different query facets.  Not a 
particularly good assertion constraint but at least in my debugger I see it's 
working.
 * Improved BaseDistributedSearchTestCase to treat Longs & Integers of the same 
value as equivalent.  It appears that non-distributed vs distributed of json 
facets has different types on the "count".
 * Refactored/improved some aspects of the JSON Facet module code: [~mkhludnev] 
can you please review this part (includes SimpleFacets)
 ** FacetRequest now has a static parse() method (two actually) and is used by 
FacetModule and SimpleFacets (for UIF method) and SpatialHeatmapFacets.  The 
intent is to simplify the interaction by avoiding the need for these classes to 
even be aware of the notion of a FacetParser.  The second one is intended for 
external users (SimpleFacets) and avoids one needless outer layer of req/res.
 ** FacetRequest now has a static process() method (two actually) and is used 
by FacetModule, SimpleFacets (for UIF method), and SpatialHeatmapFacets, and 
FacetProcessor.processSubs.  This reduces duplication around debug tracking I 
saw, and it also reduces the need of the callers to even be aware of the notion 
of a FacetProcessor.
 ** Note that SimpleFacets method=uif integration glue is much simpler.

I ran tests & precommit.

What's needed is some documentation in the ref guide.  I'll add this soon.

> Make JSON Facet API support Heatmap Facet
> -----------------------------------------
>
>                 Key: SOLR-12398
>                 URL: https://issues.apache.org/jira/browse/SOLR-12398
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: Facet Module, faceting, JSON Request API, spatial
>            Reporter: Jaime Yap
>            Assignee: David Smiley
>            Priority: Major
>              Labels: heatmap
>         Attachments: SOLR-12398.patch
>
>
> The JSON query Facet API does not support Heatmap facets. For companies that 
> have standardized around generating queries for the JSON query API, it is a 
> major wart to need to also support falling back to the param encoding API in 
> order to make use of them.
> More importantly however, given it's more natural support for nested 
> subfacets, the JSON Query facet API is be able to compute more interesting 
> Heatmap layers for each facet bucket. Without resorting to the older (and 
> much more awkward) facet pivot syntax.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to