lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shalin Shekhar Mangar (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SOLR-6352) Let Stats Hang off of Range Facets
Date Wed, 01 Jul 2015 20:08:06 GMT

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

Shalin Shekhar Mangar commented on SOLR-6352:
---------------------------------------------

An example of the current response format for range facets is as follows:
{code}
curl 'http://localhost:8983/solr/test/select' --data-binary 'q=price:[0 TO 100]&facet=true&facet.range=price&facet.range.start=0&facet.range.end=1000&facet.range.gap=100&wt=json&indent=on&stats=on&stats.field=price&facet.range.other=all'
{code}
{code}
  "facet_counts":{
    "facet_queries":{},
    "facet_fields":{},
    "facet_dates":{},
    "facet_ranges":{
      "price":{
        "counts":[
          "0.0",7,
          "100.0",2,
          "200.0",1,
          "300.0",3,
          "400.0",1,
          "500.0",0,
          "600.0",1,
          "700.0",0,
          "800.0",0,
          "900.0",0],
        "gap":100.0,
        "start":0.0,
        "end":1000.0,
        "before":0,
        "after":1,
        "between":15}},
    "facet_intervals":{},
    "facet_heatmaps":{}},
  "stats":{
    "stats_fields":{
      "price":{
        "min":0.0,
        "max":2199.0,
        "count":16,
        "missing":16,
        "sum":5251.270030975342,
        "sumOfSquares":6038619.175900028,
        "mean":328.20437693595886,
        "stddev":536.3536996709846}}}}
{code}

In order to hang stats off of range facets, I propose the following response format:
{code}
curl 'http://localhost:8983/solr/test/select' --data-binary 'q=price:[0 TO 100]&facet=true&facet.range={!stats=s1}price&facet.range.start=0&facet.range.end=1000&facet.range.gap=100&wt=json&indent=on&stats=on&stats.field={!tag=s1}price&facet.range.other=all'
{code}
{code}
  "facet_counts":{
    "facet_queries":{},
    "facet_fields":{},
    "facet_dates":{},
    "facet_ranges":{
      "price":{
        "counts":[
		{
			"start" : "0.0",
			"count" : "7"
			"stats":{
				"stats_fields":{
					"price":{
						"min":0.0,
						"max":92.0,
						"count":7,
						"missing":0,
						"sum":198.43999862670898,
						"sumOfSquares":14617.752310049444,
						"mean":28.348571232387,
						"stddev":38.7131800847063
					}
				}
			}
		},
		{
			"start" : "100.0"
			"count" : "2"
			"stats":{
				"stats_fields":{
					"price":{
						"min":179.99000549316406,
						"max":185.0,
						"count":2,
						"missing":0,
						"sum":364.99000549316406,
						"sumOfSquares":66621.40207742923,
						"mean":182.49500274658203,
						"stddev":3.5426010894910442
					}
				}
			}
		},
		...
	],
        "gap":100.0,
        "start":0.0,
        "end":1000.0,
        "before": {
		"count" : "0",
		"stats":{
			"stats_fields":{
				"price":{
					"min":0,
					"max":0,
					"count":0,
					"missing":0,
					"sum":0,
					"sumOfSquares":0,
					"mean":0,
					"stddev":0
				}
			}
		}
	},
        "after":{
		"count" : "1",
		"stats":{
			"stats_fields":{
				"price":{
					"min":2199.0,
					"max":2199.0,
					"count":1,
					"missing":0,
					"sum":2199.0,
					"sumOfSquares":4835601.0,
					"mean":2199.0,
					"stddev":0.0
				}
			}
		}
	},
        "between":{
		"count" : "15",
		"stats":{
			"stats_fields":{
				"price":{
				        "min":0.0,
					"max":649.989990234375,
					"count":15,
					"missing":0,
					"sum":3052.270030975342,
					"sumOfSquares":1203018.175900028,
					"mean":203.48466873168945,
					"stddev":203.8781183115027
				}
			}
		}
	}}},
    "facet_intervals":{},
    "facet_heatmaps":{}},
  "stats":{
    "stats_fields":{
      "price":{
        "min":0.0,
        "max":2199.0,
        "count":16,
        "missing":16,
        "sum":5251.270030975342,
        "sumOfSquares":6038619.175900028,
        "mean":328.20437693595886,
        "stddev":536.3536996709846}}}}
{code}

Thoughts?

> Let Stats Hang off of Range Facets
> ----------------------------------
>
>                 Key: SOLR-6352
>                 URL: https://issues.apache.org/jira/browse/SOLR-6352
>             Project: Solr
>          Issue Type: Sub-task
>            Reporter: Hoss Man
>            Assignee: Shalin Shekhar Mangar
>
> The same basic idea as the sibling pivot issue: ask the RangeFacet code to compute some
stats X for each range it generates.  We can do this with the existing {{stats.field}} params,
but we'll leverage the {{tag}} local param of the {{stats.field}} instances to be able to
associate which stats we want hanging off of which {{facet.range}} instance
> Example...
> {noformat}
> facet.range={!stats=s1}timestamp
> facet.range={!stats=s2}bytes_sent
> stats.field={!key=sum_bytes tag=s1 sum=true}bytes_sent
> stats.field={!tag=s1 percentiles=99}request_duration
> stats.field={!tag=s2 mean=true percentiles=99}request_duration
> {noformat}
> ...with the request above, (hypothetically over an index of web log traffic) each range
bucket over the "timestamp" field will (in addition to simple facet count) also include the
sum of total bytes_sent, and the 99th percentile of request_duration for all docs in that
time range; and each range bucket over the "bytes_sent" field will (in addition to simple
facet count) also include the mean and 99th percentile of request_duration.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message