[ https://issues.apache.org/jira/browse/SOLR-2242?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13053113#comment-13053113 ]
Simon Willnauer commented on SOLR-2242: --------------------------------------- bq. New patch ready for commit? bill, I still see lots of whitespace / indentation problems in that latest patch. Anyway I looked at it and I wonder if we could restructure this a little like we could first check if termList != null and do all the cases there and if termList == null we get the TermCountsLimit that would remove all the redundant getTermCountsLimit / getListedTermCounts calls. Like the termList==null case seems very easy and straight forward: {code} if (termList != null) { NamedList<Integer> counts = getListedTermCounts(facetValue, termList); switch (numFacetTerms) { case COUNTS: final NamedList<Integer> resCount = new NamedList<Integer>(); counts = resCount; case COUNTS_AND_VALUES: counts.add("numFacetTerms", counts.size()); break; } res.add(key, counts); } else { ... {code} yet, its hard to refactor this without a single test (note, there might be a bug). I would be really happy to see a test-case for this that tests all the variations. Regarding the constants, I think the default case should be a constant too. If you use NamedList can you make sure you put the right generic to it if possible, otherwise my IDE goes wild and adds warnings all over the place. In your case NamedList<Integer> works fine. simon > Get distinct count of names for a facet field > --------------------------------------------- > > Key: SOLR-2242 > URL: https://issues.apache.org/jira/browse/SOLR-2242 > Project: Solr > Issue Type: New Feature > Components: Response Writers > Affects Versions: 4.0 > Reporter: Bill Bell > Assignee: Simon Willnauer > Priority: Minor > Fix For: 4.0 > > Attachments: SOLR-2242.patch, SOLR-2242.shard.patch, > SOLR-2242.shard.patch, SOLR-2242.solr3.1.patch, SOLR.2242.solr3.1.patch, > SOLR.2242.v2.patch > > > When returning facet.field=<name of field> you will get a list of matches for > distinct values. This is normal behavior. This patch tells you how many > distinct values you have (# of rows). Use with limit=-1 and mincount=1. > The feature is called "namedistinct". Here is an example: > http://localhost:8983/solr/select?shards=localhost:8983/solr,localhost:7574/solr&indent=true&q=*:*&facet=true&facet.mincount=1&facet.numFacetTerms=2&facet.limit=-1&facet.field=price > http://localhost:8983/solr/select?shards=localhost:8983/solr,localhost:7574/solr&indent=true&q=*:*&facet=true&facet.mincount=1&facet.numFacetTerms=0&facet.limit=-1&facet.field=price > http://localhost:8983/solr/select?shards=localhost:8983/solr,localhost:7574/solr&indent=true&q=*:*&facet=true&facet.mincount=1&facet.numFacetTerms=1&facet.limit=-1&facet.field=price > This currently only works on facet.field. > {code} > <lst name="facet_fields"> > <lst name="price"> > <int name="numFacetTerms">14</int> > <int name="0.0">3</int><int name="11.5">1</int><int > name="19.95">1</int><int name="74.99">1</int><int name="92.0">1</int><int > name="179.99">1</int><int name="185.0">1</int><int name="279.95">1</int><int > name="329.95">1</int><int name="350.0">1</int><int name="399.0">1</int><int > name="479.95">1</int><int name="649.99">1</int><int name="2199.0">1</int> > </lst> > </lst> > {code} > Several people use this to get the group.field count (the # of groups). -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org