€cdocutils.nodes document q)q}q(U nametypesq}q(X3usage of pids provided by a specified rights holderqNX requirementsqNXstatistics service usageqNX data uploadsq NX metacat usage statistics serviceq NXoverviewq NXresults filteringq NXstatistics service solr indexq NXdata downloadsqNXunresolved issues/questionsqNXprovided statisticsqNX performanceqNXresults aggregationqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hU3usage-of-pids-provided-by-a-specified-rights-holderqhU requirementsqhUstatistics-service-usageqh U data-uploadsqh U metacat-usage-statistics-serviceq h Uoverviewq!h Uresults-filteringq"h Ustatistics-service-solr-indexq#hUdata-downloadsq$hUunresolved-issues-questionsq%hUprovided-statisticsq&hU performanceq'hUresults-aggregationq(uUchildrenq)]q*(cdocutils.nodes comment q+)q,}q-(U rawsourceq.XÁ@startuml images/stats-activity-diagram.png (*) --> "Initialize event log timer" --> "read an event_log entry" --> "read system metadata" --> "write to stats Solr index" @endumlUparentq/hUsourceq0Xl/var/lib/jenkins/jobs/Metacat_stable/workspace/METACAT_2_8_2/docs/user/metacat/source/statistics-service.rstq1Utagnameq2Ucommentq3U attributesq4}q5(U xml:spaceq6Upreserveq7Uidsq8]Ubackrefsq9]Udupnamesq:]Uclassesq;]Unamesq<]uUlineq=K Udocumentq>hh)]q?cdocutils.nodes Text q@XÁ@startuml images/stats-activity-diagram.png (*) --> "Initialize event log timer" --> "read an event_log entry" --> "read system metadata" --> "write to stats Solr index" @endumlqA…qB}qC(h.Uh/h,ubaubh+)qD}qE(h.XÚ@startuml images/stats-query-sequence-diagram.png participant client client -> MNRestServlet : doGet(request) activate MNRestServlet MNRestServlet -> MNResourceHandler: handle(get) activate MNResourceHandler MNResourceHandler -> MNResourceHandler: doQuery(engine, query) MNResourceHandler -> MNodeService: query(engine, query) activate MNodeService MNodeService -> StatsQueryService: query(query, subjects) activate StatsQueryService StatsQueryService -> SolrServer: query(query) activate SolrServer SolrServer -> StatsQueryService: inputstream deactivate SolrServer StatsQueryService -> MNodeService: inputstream deactivate StatsQueryService MNodeService -> MNResourceHandler: inputstream deactivate MNodeService MNResourceHandler -> MNRestServlet: response deactivate MNResourceHandler MNRestServlet -> client: response deactivate MNRestServlet @endumlh/hh0h1h2h3h4}qF(h6h7h8]h9]h:]h;]h<]uh=K$h>hh)]qGh@XÚ@startuml images/stats-query-sequence-diagram.png participant client client -> MNRestServlet : doGet(request) activate MNRestServlet MNRestServlet -> MNResourceHandler: handle(get) activate MNResourceHandler MNResourceHandler -> MNResourceHandler: doQuery(engine, query) MNResourceHandler -> MNodeService: query(engine, query) activate MNodeService MNodeService -> StatsQueryService: query(query, subjects) activate StatsQueryService StatsQueryService -> SolrServer: query(query) activate SolrServer SolrServer -> StatsQueryService: inputstream deactivate SolrServer StatsQueryService -> MNodeService: inputstream deactivate StatsQueryService MNodeService -> MNResourceHandler: inputstream deactivate MNodeService MNResourceHandler -> MNRestServlet: response deactivate MNResourceHandler MNRestServlet -> client: response deactivate MNRestServlet @endumlqH…qI}qJ(h.Uh/hDubaubcdocutils.nodes section qK)qL}qM(h.Uh/hh0h1h2UsectionqNh4}qO(h:]h;]h9]h8]qPh ah<]qQh auh=K&h>hh)]qR(cdocutils.nodes title qS)qT}qU(h.X Metacat Usage Statistics ServiceqVh/hLh0h1h2UtitleqWh4}qX(h:]h;]h9]h8]h<]uh=K&h>hh)]qYh@X Metacat Usage Statistics ServiceqZ…q[}q\(h.hVh/hTubaubhK)q]}q^(h.Uh/hLh0h1h2hNh4}q_(h:]h;]h9]h8]q`h!ah<]qah auh=K)h>hh)]qb(hS)qc}qd(h.XOverviewqeh/h]h0h1h2hWh4}qf(h:]h;]h9]h8]h<]uh=K)h>hh)]qgh@XOverviewqh…qi}qj(h.heh/hcubaubcdocutils.nodes paragraph qk)ql}qm(h.XHThis document describes a proposed usage statistics service for Metacat.qnh/h]h0h1h2U paragraphqoh4}qp(h:]h;]h9]h8]h<]uh=K*h>hh)]qqh@XHThis document describes a proposed usage statistics service for Metacat.qr…qs}qt(h.hnh/hlubaubhk)qu}qv(h.XiThis new service will provide Metacat usage information to clients about data and metacata access events.qwh/h]h0h1h2hoh4}qx(h:]h;]h9]h8]h<]uh=K,h>hh)]qyh@XiThis new service will provide Metacat usage information to clients about data and metacata access events.qz…q{}q|(h.hwh/huubaubeubhK)q}}q~(h.Uh/hLh0h1h2hNh4}q(h:]h;]h9]h8]q€hah<]qhauh=K0h>hh)]q‚(hS)qƒ}q„(h.X Requirementsq…h/h}h0h1h2hWh4}q†(h:]h;]h9]h8]h<]uh=K0h>hh)]q‡h@X Requirementsqˆ…q‰}qŠ(h.h…h/hƒubaubhk)q‹}qŒ(h.X‚The statistics service should have an easy to learn API that allows for query fields to be added and provide reports in XML, JSON.qh/h}h0h1h2hoh4}qŽ(h:]h;]h9]h8]h<]uh=K2h>hh)]qh@X‚The statistics service should have an easy to learn API that allows for query fields to be added and provide reports in XML, JSON.q…q‘}q’(h.hh/h‹ubaubhK)q“}q”(h.Uh/h}h0h1h2hNh4}q•(h:]h;]h9]h8]q–h&ah<]q—hauh=K6h>hh)]q˜(hS)q™}qš(h.XProvided Statisticsq›h/h“h0h1h2hWh4}qœ(h:]h;]h9]h8]h<]uh=K6h>hh)]qh@XProvided Statisticsqž…qŸ}q (h.h›h/h™ubaubhk)q¡}q¢(h.X2The service will include the following statistics:q£h/h“h0h1h2hoh4}q¤(h:]h;]h9]h8]h<]uh=K8h>hh)]q¥h@X2The service will include the following statistics:q¦…q§}q¨(h.h£h/h¡ubaubcdocutils.nodes block_quote q©)qª}q«(h.Uh/h“h0Nh2U block_quoteq¬h4}q­(h:]h;]h9]h8]h<]uh=Nh>hh)]q®cdocutils.nodes bullet_list q¯)q°}q±(h.Uh4}q²(Ubulletq³X*h8]h9]h:]h;]h<]uh/hªh)]q´(cdocutils.nodes list_item qµ)q¶}q·(h.X Dataset viewsq¸h4}q¹(h:]h;]h9]h8]h<]uh/h°h)]qºhk)q»}q¼(h.h¸h/h¶h0h1h2hoh4}q½(h:]h;]h9]h8]h<]uh=K:h)]q¾h@X Dataset viewsq¿…qÀ}qÁ(h.h¸h/h»ubaubah2U list_itemqÂubhµ)qÃ}qÄ(h.XPackage downloadsqÅh4}qÆ(h:]h;]h9]h8]h<]uh/h°h)]qÇhk)qÈ}qÉ(h.hÅh/hÃh0h1h2hoh4}qÊ(h:]h;]h9]h8]h<]uh=K;h)]qËh@XPackage downloadsqÌ…qÍ}qÎ(h.hÅh/hÈubaubah2hÂubhµ)qÏ}qÐ(h.X"Size in bytes of package downloadsqÑh4}qÒ(h:]h;]h9]h8]h<]uh/h°h)]qÓhk)qÔ}qÕ(h.hÑh/hÏh0h1h2hoh4}qÖ(h:]h;]h9]h8]h<]uh=Khh)]qí(hS)qî}qï(h.XResults Filteringqðh/hèh0h1h2hWh4}qñ(h:]h;]h9]h8]h<]uh=K@h>hh)]qòh@XResults Filteringqó…qô}qõ(h.hðh/hîubaubhk)qö}q÷(h.XTReports returned by the service must be able to be filtered by the following fields:qøh/hèh0h1h2hoh4}qù(h:]h;]h9]h8]h<]uh=KBh>hh)]qúh@XTReports returned by the service must be able to be filtered by the following fields:qû…qü}qý(h.høh/höubaubh©)qþ}qÿ(h.Uh/hèh0Nh2h¬h4}r(h:]h;]h9]h8]h<]uh=Nh>hh)]rh¯)r}r(h.Uh4}r(h³X*h8]h9]h:]h;]h<]uh/hþh)]r(hµ)r}r(h.XA PID or list of PIDsrh4}r (h:]h;]h9]h8]h<]uh/jh)]r hk)r }r (h.jh/jh0h1h2hoh4}r (h:]h;]h9]h8]h<]uh=KDh)]rh@XA PID or list of PIDsr…r}r(h.jh/j ubaubah2hÂubhµ)r}r(h.XNCreator or list of creators (DN, or ORCID, or some amalgam -- to be discussed)rh4}r(h:]h;]h9]h8]h<]uh/jh)]rhk)r}r(h.jh/jh0h1h2hoh4}r(h:]h;]h9]h8]h<]uh=KEh)]rh@XNCreator or list of creators (DN, or ORCID, or some amalgam -- to be discussed)r…r}r(h.jh/jubaubah2hÂubhµ)r}r(h.X5A time range of access event (upload, download, etc.)r h4}r!(h:]h;]h9]h8]h<]uh/jh)]r"hk)r#}r$(h.j h/jh0h1h2hoh4}r%(h:]h;]h9]h8]h<]uh=KFh)]r&h@X5A time range of access event (upload, download, etc.)r'…r(}r)(h.j h/j#ubaubah2hÂubhµ)r*}r+(h.X9Spatial location of access event (upload, download, etc.)r,h4}r-(h:]h;]h9]h8]h<]uh/jh)]r.hk)r/}r0(h.j,h/j*h0h1h2hoh4}r1(h:]h;]h9]h8]h<]uh=KGh)]r2h@X9Spatial location of access event (upload, download, etc.)r3…r4}r5(h.j,h/j/ubaubah2hÂubhµ)r6}r7(h.X IP Addressr8h4}r9(h:]h;]h9]h8]h<]uh/jh)]r:hk)r;}r<(h.j8h/j6h0h1h2hoh4}r=(h:]h;]h9]h8]h<]uh=KHh)]r>h@X IP Addressr?…r@}rA(h.j8h/j;ubaubah2hÂubhµ)rB}rC(h.X\Accessor or list of accessors (DN, or ORCID, or some amalgam, needs ACL -- to be discussed) h4}rD(h:]h;]h9]h8]h<]uh/jh)]rEhk)rF}rG(h.X[Accessor or list of accessors (DN, or ORCID, or some amalgam, needs ACL -- to be discussed)rHh/jBh0h1h2hoh4}rI(h:]h;]h9]h8]h<]uh=KIh)]rJh@X[Accessor or list of accessors (DN, or ORCID, or some amalgam, needs ACL -- to be discussed)rK…rL}rM(h.jHh/jFubaubah2hÂubeh2hçubaubeubhK)rN}rO(h.Uh/h}h0h1h2hNh4}rP(h:]h;]h9]h8]rQh(ah<]rRhauh=KLh>hh)]rS(hS)rT}rU(h.XResults AggregationrVh/jNh0h1h2hWh4}rW(h:]h;]h9]h8]h<]uh=KLh>hh)]rXh@XResults AggregationrY…rZ}r[(h.jVh/jTubaubcdocutils.nodes definition_list r\)r]}r^(h.Uh/jNh0Nh2Udefinition_listr_h4}r`(h:]h;]h9]h8]h<]uh=Nh>hh)]racdocutils.nodes definition_list_item rb)rc}rd(h.XÙReports must be able to be aggregated by the following fields: * User (DN, or ORCID, or some amalgam ) * Time range, aggregated to requested unit (day, week, month, year) * Spatial range, aggregated to requested unit h/j]h0h1h2Udefinition_list_itemreh4}rf(h:]h;]h9]h8]h<]uh=KQh)]rg(cdocutils.nodes term rh)ri}rj(h.X>Reports must be able to be aggregated by the following fields:rkh/jch0h1h2Utermrlh4}rm(h:]h;]h9]h8]h<]uh=KQh)]rnh@X>Reports must be able to be aggregated by the following fields:ro…rp}rq(h.jkh/jiubaubcdocutils.nodes definition rr)rs}rt(h.Uh4}ru(h:]h;]h9]h8]h<]uh/jch)]rvh¯)rw}rx(h.Uh4}ry(h³X*h8]h9]h:]h;]h<]uh/jsh)]rz(hµ)r{}r|(h.X%User (DN, or ORCID, or some amalgam )r}h4}r~(h:]h;]h9]h8]h<]uh/jwh)]rhk)r€}r(h.j}h/j{h0h1h2hoh4}r‚(h:]h;]h9]h8]h<]uh=KOh)]rƒh@X%User (DN, or ORCID, or some amalgam )r„…r…}r†(h.j}h/j€ubaubah2hÂubhµ)r‡}rˆ(h.XATime range, aggregated to requested unit (day, week, month, year)r‰h4}rŠ(h:]h;]h9]h8]h<]uh/jwh)]r‹hk)rŒ}r(h.j‰h/j‡h0h1h2hoh4}rŽ(h:]h;]h9]h8]h<]uh=KPh)]rh@XATime range, aggregated to requested unit (day, week, month, year)r…r‘}r’(h.j‰h/jŒubaubah2hÂubhµ)r“}r”(h.X,Spatial range, aggregated to requested unit h4}r•(h:]h;]h9]h8]h<]uh/jwh)]r–hk)r—}r˜(h.X+Spatial range, aggregated to requested unitr™h/j“h0h1h2hoh4}rš(h:]h;]h9]h8]h<]uh=KQh)]r›h@X+Spatial range, aggregated to requested unitrœ…r}rž(h.j™h/j—ubaubah2hÂubeh2hçubah2U definitionrŸubeubaubeubhK)r }r¡(h.Uh/h}h0h1h2hNh4}r¢(h:]h;]h9]h8]r£h'ah<]r¤hauh=KTh>hh)]r¥(hS)r¦}r§(h.X Performancer¨h/j h0h1h2hWh4}r©(h:]h;]h9]h8]h<]uh=KTh>hh)]rªh@X Performancer«…r¬}r­(h.j¨h/j¦ubaubhk)r®}r¯(h.X„The query service should provide results quickly, as it will be used to construct the user dashboard and possibly other UI elements.r°h/j h0h1h2hoh4}r±(h:]h;]h9]h8]h<]uh=KVh>hh)]r²h@X„The query service should provide results quickly, as it will be used to construct the user dashboard and possibly other UI elements.r³…r´}rµ(h.j°h/j®ubaubeubeubhK)r¶}r·(h.Uh/hLh0h1h2hNh4}r¸(h:]h;]h9]h8]r¹h#ah<]rºh auh=KYh>hh)]r»(hS)r¼}r½(h.XStatistics Service Solr Indexr¾h/j¶h0h1h2hWh4}r¿(h:]h;]h9]h8]h<]uh=KYh>hh)]rÀh@XStatistics Service Solr IndexrÁ…rÂ}rÃ(h.j¾h/j¼ubaubhk)rÄ}rÅ(h.X^Currently Metacat writes access information to the table ‘access_log’ that has the fields:rÆh/j¶h0h1h2hoh4}rÇ(h:]h;]h9]h8]h<]uh=KZh>hh)]rÈh@X^Currently Metacat writes access information to the table ‘access_log’ that has the fields:rÉ…rÊ}rË(h.jÆh/jÄubaubcdocutils.nodes table rÌ)rÍ}rÎ(h.Uh/j¶h0h1h2UtablerÏh4}rÐ(h:]h;]h9]h8]h<]uh=Nh>hh)]rÑcdocutils.nodes tgroup rÒ)rÓ}rÔ(h.Uh4}rÕ(h8]h9]h:]h;]h<]UcolsKuh/jÍh)]rÖ(cdocutils.nodes colspec r×)rØ}rÙ(h.Uh4}rÚ(h8]h9]h:]h;]h<]UcolwidthK uh/jÓh)]h2UcolspecrÛubj×)rÜ}rÝ(h.Uh4}rÞ(h8]h9]h:]h;]h<]UcolwidthKuh/jÓh)]h2jÛubcdocutils.nodes tbody rß)rà}rá(h.Uh4}râ(h:]h;]h9]h8]h<]uh/jÓh)]rã(cdocutils.nodes row rä)rå}ræ(h.Uh4}rç(h:]h;]h9]h8]h<]uh/jàh)]rè(cdocutils.nodes entry ré)rê}rë(h.Uh4}rì(h:]h;]h9]h8]h<]uh/jåh)]ríhk)rî}rï(h.Xnamerðh/jêh0h1h2hoh4}rñ(h:]h;]h9]h8]h<]uh=K]h)]ròh@Xnameró…rô}rõ(h.jðh/jîubaubah2Uentryröubjé)r÷}rø(h.Uh4}rù(h:]h;]h9]h8]h<]uh/jåh)]rúhk)rû}rü(h.X data typerýh/j÷h0h1h2hoh4}rþ(h:]h;]h9]h8]h<]uh=K]h)]rÿh@X data typer…r}r(h.jýh/jûubaubah2jöubeh2Urowrubjä)r}r(h.Uh4}r(h:]h;]h9]h8]h<]uh/jàh)]r(jé)r}r (h.Uh4}r (h:]h;]h9]h8]h<]uh/jh)]r hk)r }r (h.Xentryidrh/jh0h1h2hoh4}r(h:]h;]h9]h8]h<]uh=K_h)]rh@Xentryidr…r}r(h.jh/j ubaubah2jöubjé)r}r(h.Uh4}r(h:]h;]h9]h8]h<]uh/jh)]rhk)r}r(h.Xbigintrh/jh0h1h2hoh4}r(h:]h;]h9]h8]h<]uh=K_h)]rh@Xbigintr…r}r(h.jh/jubaubah2jöubeh2jubjä)r }r!(h.Uh4}r"(h:]h;]h9]h8]h<]uh/jàh)]r#(jé)r$}r%(h.Uh4}r&(h:]h;]h9]h8]h<]uh/j h)]r'hk)r(}r)(h.X ip_addressr*h/j$h0h1h2hoh4}r+(h:]h;]h9]h8]h<]uh=K`h)]r,h@X ip_addressr-…r.}r/(h.j*h/j(ubaubah2jöubjé)r0}r1(h.Uh4}r2(h:]h;]h9]h8]h<]uh/j h)]r3hk)r4}r5(h.Xcharacter varying(512)r6h/j0h0h1h2hoh4}r7(h:]h;]h9]h8]h<]uh=K`h)]r8h@Xcharacter varying(512)r9…r:}r;(h.j6h/j4ubaubah2jöubeh2jubjä)r<}r=(h.Uh4}r>(h:]h;]h9]h8]h<]uh/jàh)]r?(jé)r@}rA(h.Uh4}rB(h:]h;]h9]h8]h<]uh/j<h)]rChk)rD}rE(h.X user_agentrFh/j@h0h1h2hoh4}rG(h:]h;]h9]h8]h<]uh=Kah)]rHh@X user_agentrI…rJ}rK(h.jFh/jDubaubah2jöubjé)rL}rM(h.Uh4}rN(h:]h;]h9]h8]h<]uh/j<h)]rOhk)rP}rQ(h.Xcharacter varying(512)rRh/jLh0h1h2hoh4}rS(h:]h;]h9]h8]h<]uh=Kah)]rTh@Xcharacter varying(512)rU…rV}rW(h.jRh/jPubaubah2jöubeh2jubjä)rX}rY(h.Uh4}rZ(h:]h;]h9]h8]h<]uh/jàh)]r[(jé)r\}r](h.Uh4}r^(h:]h;]h9]h8]h<]uh/jXh)]r_hk)r`}ra(h.X principalrbh/j\h0h1h2hoh4}rc(h:]h;]h9]h8]h<]uh=Kbh)]rdh@X principalre…rf}rg(h.jbh/j`ubaubah2jöubjé)rh}ri(h.Uh4}rj(h:]h;]h9]h8]h<]uh/jXh)]rkhk)rl}rm(h.Xcharacter varying(512)rnh/jhh0h1h2hoh4}ro(h:]h;]h9]h8]h<]uh=Kbh)]rph@Xcharacter varying(512)rq…rr}rs(h.jnh/jlubaubah2jöubeh2jubjä)rt}ru(h.Uh4}rv(h:]h;]h9]h8]h<]uh/jàh)]rw(jé)rx}ry(h.Uh4}rz(h:]h;]h9]h8]h<]uh/jth)]r{hk)r|}r}(h.Xdocidr~h/jxh0h1h2hoh4}r(h:]h;]h9]h8]h<]uh=Kch)]r€h@Xdocidr…r‚}rƒ(h.j~h/j|ubaubah2jöubjé)r„}r…(h.Uh4}r†(h:]h;]h9]h8]h<]uh/jth)]r‡hk)rˆ}r‰(h.Xcharacter varying(250)rŠh/j„h0h1h2hoh4}r‹(h:]h;]h9]h8]h<]uh=Kch)]rŒh@Xcharacter varying(250)r…rŽ}r(h.jŠh/jˆubaubah2jöubeh2jubjä)r}r‘(h.Uh4}r’(h:]h;]h9]h8]h<]uh/jàh)]r“(jé)r”}r•(h.Uh4}r–(h:]h;]h9]h8]h<]uh/jh)]r—hk)r˜}r™(h.Xeventršh/j”h0h1h2hoh4}r›(h:]h;]h9]h8]h<]uh=Kdh)]rœh@Xeventr…rž}rŸ(h.jšh/j˜ubaubah2jöubjé)r }r¡(h.Uh4}r¢(h:]h;]h9]h8]h<]uh/jh)]r£hk)r¤}r¥(h.Xcharacter varying(512)r¦h/j h0h1h2hoh4}r§(h:]h;]h9]h8]h<]uh=Kdh)]r¨h@Xcharacter varying(512)r©…rª}r«(h.j¦h/j¤ubaubah2jöubeh2jubjä)r¬}r­(h.Uh4}r®(h:]h;]h9]h8]h<]uh/jàh)]r¯(jé)r°}r±(h.Uh4}r²(h:]h;]h9]h8]h<]uh/j¬h)]r³hk)r´}rµ(h.X date_loggedr¶h/j°h0h1h2hoh4}r·(h:]h;]h9]h8]h<]uh=Keh)]r¸h@X date_loggedr¹…rº}r»(h.j¶h/j´ubaubah2jöubjé)r¼}r½(h.Uh4}r¾(h:]h;]h9]h8]h<]uh/j¬h)]r¿hk)rÀ}rÁ(h.Xtimestamp without time zonerÂh/j¼h0h1h2hoh4}rÃ(h:]h;]h9]h8]h<]uh=Keh)]rÄh@Xtimestamp without time zonerÅ…rÆ}rÇ(h.jÂh/jÀubaubah2jöubeh2jubeh2UtbodyrÈubeh2UtgrouprÉubaubhk)rÊ}rË(h.X‚In order to provide fast queries, aggregation and faceting of selected fields, access log information will be exported from the current ‘access_log’ table and from the ‘systemmetadata’ table into a new Solr index that will be configured in Metacat as a second Solr core. The new Solr index will be based on access events and will contain the fields shown in the following table:rÌh/j¶h0h1h2hoh4}rÍ(h:]h;]h9]h8]h<]uh=Khh>hh)]rÎh@X‚In order to provide fast queries, aggregation and faceting of selected fields, access log information will be exported from the current ‘access_log’ table and from the ‘systemmetadata’ table into a new Solr index that will be configured in Metacat as a second Solr core. The new Solr index will be based on access events and will contain the fields shown in the following table:rÏ…rÐ}rÑ(h.jÌh/jÊubaubjÌ)rÒ}rÓ(h.Uh/j¶h0h1h2jÏh4}rÔ(h:]h;]h9]h8]h<]uh=Nh>hh)]rÕjÒ)rÖ}r×(h.Uh4}rØ(h8]h9]h:]h;]h<]UcolsKuh/jÒh)]rÙ(j×)rÚ}rÛ(h.Uh4}rÜ(h8]h9]h:]h;]h<]UcolwidthKuh/jÖh)]h2jÛubj×)rÝ}rÞ(h.Uh4}rß(h8]h9]h:]h;]h<]UcolwidthKuh/jÖh)]h2jÛubjß)rà}rá(h.Uh4}râ(h:]h;]h9]h8]h<]uh/jÖh)]rã(jä)rä}rå(h.Uh4}ræ(h:]h;]h9]h8]h<]uh/jàh)]rç(jé)rè}ré(h.Uh4}rê(h:]h;]h9]h8]h<]uh/jäh)]rëhk)rì}rí(h.Xnamerîh/jèh0h1h2hoh4}rï(h:]h;]h9]h8]h<]uh=Knh)]rðh@Xnamerñ…rò}ró(h.jîh/jìubaubah2jöubjé)rô}rõ(h.Uh4}rö(h:]h;]h9]h8]h<]uh/jäh)]r÷hk)rø}rù(h.X ddata typerúh/jôh0h1h2hoh4}rû(h:]h;]h9]h8]h<]uh=Knh)]rüh@X ddata typerý…rþ}rÿ(h.júh/jøubaubah2jöubeh2jubjä)r}r(h.Uh4}r(h:]h;]h9]h8]h<]uh/jàh)]r(jé)r}r(h.Uh4}r(h:]h;]h9]h8]h<]uh/jh)]rhk)r}r (h.Xidr h/jh0h1h2hoh4}r (h:]h;]h9]h8]h<]uh=Kph)]r h@Xidr …r}r(h.j h/jubaubah2jöubjé)r}r(h.Uh4}r(h:]h;]h9]h8]h<]uh/jh)]rhk)r}r(h.Xstrrh/jh0h1h2hoh4}r(h:]h;]h9]h8]h<]uh=Kph)]rh@Xstrr…r}r(h.jh/jubaubah2jöubeh2jubjä)r}r(h.Uh4}r(h:]h;]h9]h8]h<]uh/jàh)]r(jé)r }r!(h.Uh4}r"(h:]h;]h9]h8]h<]uh/jh)]r#hk)r$}r%(h.Xdatetimer&h/j h0h1h2hoh4}r'(h:]h;]h9]h8]h<]uh=Kqh)]r(h@Xdatetimer)…r*}r+(h.j&h/j$ubaubah2jöubjé)r,}r-(h.Uh4}r.(h:]h;]h9]h8]h<]uh/jh)]r/hk)r0}r1(h.Xdater2h/j,h0h1h2hoh4}r3(h:]h;]h9]h8]h<]uh=Kqh)]r4h@Xdater5…r6}r7(h.j2h/j0ubaubah2jöubeh2jubjä)r8}r9(h.Uh4}r:(h:]h;]h9]h8]h<]uh/jàh)]r;(jé)r<}r=(h.Uh4}r>(h:]h;]h9]h8]h<]uh/j8h)]r?hk)r@}rA(h.XeventrBh/j<h0h1h2hoh4}rC(h:]h;]h9]h8]h<]uh=Krh)]rDh@XeventrE…rF}rG(h.jBh/j@ubaubah2jöubjé)rH}rI(h.Uh4}rJ(h:]h;]h9]h8]h<]uh/j8h)]rKhk)rL}rM(h.XstrrNh/jHh0h1h2hoh4}rO(h:]h;]h9]h8]h<]uh=Krh)]rPh@XstrrQ…rR}rS(h.jNh/jLubaubah2jöubeh2jubjä)rT}rU(h.Uh4}rV(h:]h;]h9]h8]h<]uh/jàh)]rW(jé)rX}rY(h.Uh4}rZ(h:]h;]h9]h8]h<]uh/jTh)]r[hk)r\}r](h.Xlocationr^h/jXh0h1h2hoh4}r_(h:]h;]h9]h8]h<]uh=Ksh)]r`h@Xlocationra…rb}rc(h.j^h/j\ubaubah2jöubjé)rd}re(h.Uh4}rf(h:]h;]h9]h8]h<]uh/jTh)]rghk)rh}ri(h.Xlocationrjh/jdh0h1h2hoh4}rk(h:]h;]h9]h8]h<]uh=Ksh)]rlh@Xlocationrm…rn}ro(h.jjh/jhubaubah2jöubeh2jubjä)rp}rq(h.Uh4}rr(h:]h;]h9]h8]h<]uh/jàh)]rs(jé)rt}ru(h.Uh4}rv(h:]h;]h9]h8]h<]uh/jph)]rwhk)rx}ry(h.Xpidrzh/jth0h1h2hoh4}r{(h:]h;]h9]h8]h<]uh=Kth)]r|h@Xpidr}…r~}r(h.jzh/jxubaubah2jöubjé)r€}r(h.Uh4}r‚(h:]h;]h9]h8]h<]uh/jph)]rƒhk)r„}r…(h.Xstrr†h/j€h0h1h2hoh4}r‡(h:]h;]h9]h8]h<]uh=Kth)]rˆh@Xstrr‰…rŠ}r‹(h.j†h/j„ubaubah2jöubeh2jubjä)rŒ}r(h.Uh4}rŽ(h:]h;]h9]h8]h<]uh/jàh)]r(jé)r}r‘(h.Uh4}r’(h:]h;]h9]h8]h<]uh/jŒh)]r“hk)r”}r•(h.X rightsHolderr–h/jh0h1h2hoh4}r—(h:]h;]h9]h8]h<]uh=Kuh)]r˜h@X rightsHolderr™…rš}r›(h.j–h/j”ubaubah2jöubjé)rœ}r(h.Uh4}rž(h:]h;]h9]h8]h<]uh/jŒh)]rŸhk)r }r¡(h.Xstrr¢h/jœh0h1h2hoh4}r£(h:]h;]h9]h8]h<]uh=Kuh)]r¤h@Xstrr¥…r¦}r§(h.j¢h/j ubaubah2jöubeh2jubjä)r¨}r©(h.Uh4}rª(h:]h;]h9]h8]h<]uh/jàh)]r«(jé)r¬}r­(h.Uh4}r®(h:]h;]h9]h8]h<]uh/j¨h)]r¯hk)r°}r±(h.X principalr²h/j¬h0h1h2hoh4}r³(h:]h;]h9]h8]h<]uh=Kvh)]r´h@X principalrµ…r¶}r·(h.j²h/j°ubaubah2jöubjé)r¸}r¹(h.Uh4}rº(h:]h;]h9]h8]h<]uh/j¨h)]r»hk)r¼}r½(h.Xstrr¾h/j¸h0h1h2hoh4}r¿(h:]h;]h9]h8]h<]uh=Kvh)]rÀh@XstrrÁ…rÂ}rÃ(h.j¾h/j¼ubaubah2jöubeh2jubjä)rÄ}rÅ(h.Uh4}rÆ(h:]h;]h9]h8]h<]uh/jàh)]rÇ(jé)rÈ}rÉ(h.Uh4}rÊ(h:]h;]h9]h8]h<]uh/jÄh)]rËhk)rÌ}rÍ(h.XsizerÎh/jÈh0h1h2hoh4}rÏ(h:]h;]h9]h8]h<]uh=Kwh)]rÐh@XsizerÑ…rÒ}rÓ(h.jÎh/jÌubaubah2jöubjé)rÔ}rÕ(h.Uh4}rÖ(h:]h;]h9]h8]h<]uh/jÄh)]r×hk)rØ}rÙ(h.XintrÚh/jÔh0h1h2hoh4}rÛ(h:]h;]h9]h8]h<]uh=Kwh)]rÜh@XintrÝ…rÞ}rß(h.jÚh/jØubaubah2jöubeh2jubjä)rà}rá(h.Uh4}râ(h:]h;]h9]h8]h<]uh/jàh)]rã(jé)rä}rå(h.Uh4}ræ(h:]h;]h9]h8]h<]uh/jàh)]rçhk)rè}ré(h.XformatIdrêh/jäh0h1h2hoh4}rë(h:]h;]h9]h8]h<]uh=Kxh)]rìh@XformatIdrí…rî}rï(h.jêh/jèubaubah2jöubjé)rð}rñ(h.Uh4}rò(h:]h;]h9]h8]h<]uh/jàh)]róhk)rô}rõ(h.Xstrröh/jðh0h1h2hoh4}r÷(h:]h;]h9]h8]h<]uh=Kxh)]røh@Xstrrù…rú}rû(h.jöh/jôubaubah2jöubeh2jubeh2jÈubeh2jÉubaubhk)rü}rý(h.X5The new Solr index will contain the following fields:rþh/j¶h0h1h2hoh4}rÿ(h:]h;]h9]h8]h<]uh=K{h>hh)]rh@X5The new Solr index will contain the following fields:r…r}r(h.jþh/jüubaubcdocutils.nodes literal_block r)r}r(h.Xó 2E3E8935-364E-4000-9357-6CE4E067D236 2014-01-01T01:01:01Z read 45.17614,-93.87341 sla.2.1 uid=williams,o=unaffiliated,dc=ecoinformatics,dc=org uid=williams,o=unaffiliated,dc=ecoinformatics,dc=org 52273 eml://ecoinformatics.org/eml-2.0.1 h/j¶h0h1h2U literal_blockrh4}r(h6h7h8]h9]h:]h;]h<]uh=Kh>hh)]r h@Xó 2E3E8935-364E-4000-9357-6CE4E067D236 2014-01-01T01:01:01Z read 45.17614,-93.87341 sla.2.1 uid=williams,o=unaffiliated,dc=ecoinformatics,dc=org uid=williams,o=unaffiliated,dc=ecoinformatics,dc=org 52273 eml://ecoinformatics.org/eml-2.0.1 r …r }r (h.Uh/jubaubhk)r }r(h.XrThe second Solr core that will contain usage statistics will require a modification to the existing solr.xml file:rh/j¶h0h1h2hoh4}r(h:]h;]h9]h8]h<]uh=K‹h>hh)]rh@XrThe second Solr core that will contain usage statistics will require a modification to the existing solr.xml file:r…r}r(h.jh/j ubaubj)r}r(h.XY h/j¶h0h1h2jh4}r(h6h7h8]h9]h:]h;]h<]uh=Kh>hh)]rh@XY r…r}r(h.Uh/jubaubhk)r}r(h.XRA Java TimerTask will run the import method that will read event records from the Metacat access_log table and combine these record data from the systemmetadata table and write this combined entry to the stats Solr index. Access_log entry types such as ‘synchronization_failed’ and ‘replication’ will be filtered out and will not be written to the Solr index. The time of the last record imported from access_log will be stored so that subsequent imports would start from the next unimported event record. If required, the data may be aggregated by time interval, such as week or month.rh/j¶h0h1h2hoh4}r(h:]h;]h9]h8]h<]uh=Kšh>hh)]r h@XRA Java TimerTask will run the import method that will read event records from the Metacat access_log table and combine these record data from the systemmetadata table and write this combined entry to the stats Solr index. Access_log entry types such as ‘synchronization_failed’ and ‘replication’ will be filtered out and will not be written to the Solr index. The time of the last record imported from access_log will be stored so that subsequent imports would start from the next unimported event record. If required, the data may be aggregated by time interval, such as week or month.r!…r"}r#(h.jh/jubaubhk)r$}r%(h.XXThe statistics service will be exposed as a new query engine with a DataONE URL such as:r&h/j¶h0h1h2hoh4}r'(h:]h;]h9]h8]h<]uh=K¢h>hh)]r(h@XXThe statistics service will be exposed as a new query engine with a DataONE URL such as:r)…r*}r+(h.j&h/j$ubaubj)r,}r-(h.X1https://hostname/knb/d1/mn/v1/query/stats/h/j¶h0h1h2jh4}r.(h6h7h8]h9]h:]h;]h<]uh=K¦h>hh)]r/h@X1https://hostname/knb/d1/mn/v1/query/stats/r0…r1}r2(h.Uh/j,ubaubhk)r3}r4(h.XYQueries will be passed to the new Solr query engine using the standard Solr query syntax.r5h/j¶h0h1h2hoh4}r6(h:]h;]h9]h8]h<]uh=K¨h>hh)]r7h@XYQueries will be passed to the new Solr query engine using the standard Solr query syntax.r8…r9}r:(h.j5h/j3ubaubhk)r;}r<(h.XŽOne new class will be added to Metacat to handle stats queries, StatsQueryService. Figure 2 shows a call trace for a statistics service query.r=h/j¶h0h1h2hoh4}r>(h:]h;]h9]h8]h<]uh=K«h>hh)]r?h@XŽOne new class will be added to Metacat to handle stats queries, StatsQueryService. Figure 2 shows a call trace for a statistics service query.r@…rA}rB(h.j=h/j;ubaubcdocutils.nodes figure rC)rD}rE(h.Uh/j¶h0h1h2UfigurerFh4}rG(h:]h;]h9]h8]rHUid1rIah<]uh=K°h>hh)]rJ(cdocutils.nodes image rK)rL}rM(h.Xf.. figure:: images/stats-query-sequence-diagram.png Figure 2. Statistics query sequence diagram. h/jDh0h1h2UimagerNh4}rO(UuriX'images/stats-query-sequence-diagram.pngrPh8]h9]h:]h;]U candidatesrQ}rRU*jPsh<]uh=K°h)]ubcdocutils.nodes caption rS)rT}rU(h.X,Figure 2. Statistics query sequence diagram.rVh/jDh0h1h2UcaptionrWh4}rX(h:]h;]h9]h8]h<]uh=K°h)]rYh@X,Figure 2. Statistics query sequence diagram.rZ…r[}r\(h.jVh/jTubaubeubhk)r]}r^(h.X¥The StatsQuerySerivce class will transform the incoming query to Solr parameters, issue the query and returns the query result as a byte stream of text/html content.r_h/j¶h0h1h2hoh4}r`(h:]h;]h9]h8]h<]uh=K³h>hh)]rah@X¥The StatsQuerySerivce class will transform the incoming query to Solr parameters, issue the query and returns the query result as a byte stream of text/html content.rb…rc}rd(h.j_h/j]ubaubeubhK)re}rf(h.Uh/hLh0h1h2hNh4}rg(h:]h;]h9]h8]rhhah<]rihauh=K¶h>hh)]rj(hS)rk}rl(h.XStatistics Service Usagermh/jeh0h1h2hWh4}rn(h:]h;]h9]h8]h<]uh=K¶h>hh)]roh@XStatistics Service Usagerp…rq}rr(h.jmh/jkubaubhk)rs}rt(h.XfThe following sections show some of the queries that will be available through the statistics service.ruh/jeh0h1h2hoh4}rv(h:]h;]h9]h8]h<]uh=K¸h>hh)]rwh@XfThe following sections show some of the queries that will be available through the statistics service.rx…ry}rz(h.juh/jsubaubhK)r{}r|(h.Uh/jeh0h1h2hNh4}r}(h:]h;]h9]h8]r~hah<]rhauh=K»h>hh)]r€(hS)r}r‚(h.X3Usage of pids provided by a specified rights holderrƒh/j{h0h1h2hWh4}r„(h:]h;]h9]h8]h<]uh=K»h>hh)]r…h@X3Usage of pids provided by a specified rights holderr†…r‡}rˆ(h.jƒh/jubaubhk)r‰}rŠ(h.X’The following example shows a query for download volume for pids created by rightsHolder=williams with download size statistics aggregated by pid:r‹h/j{h0h1h2hoh4}rŒ(h:]h;]h9]h8]h<]uh=K½h>hh)]rh@X’The following example shows a query for download volume for pids created by rightsHolder=williams with download size statistics aggregated by pid:rŽ…r}r(h.j‹h/j‰ubaubj)r‘}r’(h.Xhttp://myd1host/knb/d1/mn/v1/query/stats/q=*:*&fq=rightsHolder:uid=williams*&fq=event:read&stats=true&stats.field=size&rows=0&stats.facet=pidh/j{h0h1h2jh4}r“(h6h7h8]h9]h:]h;]h<]uh=KÁh>hh)]r”h@Xhttp://myd1host/knb/d1/mn/v1/query/stats/q=*:*&fq=rightsHolder:uid=williams*&fq=event:read&stats=true&stats.field=size&rows=0&stats.facet=pidr•…r–}r—(h.Uh/j‘ubaubhk)r˜}r™(h.X!The following result is returned:ršh/j{h0h1h2hoh4}r›(h:]h;]h9]h8]h<]uh=KÃh>hh)]rœh@X!The following result is returned:r…rž}rŸ(h.jšh/j˜ubaubj)r }r¡(h.X ... 30.0 1000.0 3150.0 8 0 3004500.0 393.75 502.0226944215627 1000.0 1000.0 3000.0 3 0 3000000.0 1000.0 0.0 30.0 30.0 150.0 5 0 4500.0 30.0 0.0 h/j{h0h1h2jh4}r¢(h6h7h8]h9]h:]h;]h<]uh=KÇh>hh)]r£h@X ... 30.0 1000.0 3150.0 8 0 3004500.0 393.75 502.0226944215627 1000.0 1000.0 3000.0 3 0 3000000.0 1000.0 0.0 30.0 30.0 150.0 5 0 4500.0 30.0 0.0 r¤…r¥}r¦(h.Uh/j ubaubhk)r§}r¨(h.XUThe previous query can be constrained to a specific time by adding a time range, i.e.r©h/j{h0h1h2hoh4}rª(h:]h;]h9]h8]h<]uh=Kóh>hh)]r«h@XUThe previous query can be constrained to a specific time by adding a time range, i.e.r¬…r­}r®(h.j©h/j§ubaubj)r¯}r°(h.X<&fq=datetime:%[2013-01-01T23:59:59Z TO 2013-04-31T23:59:59Z]h/j{h0h1h2jh4}r±(h6h7h8]h9]h:]h;]h<]uh=K÷h>hh)]r²h@X<&fq=datetime:%[2013-01-01T23:59:59Z TO 2013-04-31T23:59:59Z]r³…r´}rµ(h.Uh/j¯ubaubeubhK)r¶}r·(h.Uh/jeh0h1h2hNh4}r¸(h:]h;]h9]h8]r¹hah<]rºh auh=Kúh>hh)]r»(hS)r¼}r½(h.X Data uploadsr¾h/j¶h0h1h2hWh4}r¿(h:]h;]h9]h8]h<]uh=Kúh>hh)]rÀh@X Data uploadsrÁ…rÂ}rÃ(h.j¾h/j¼ubaubhk)rÄ}rÅ(h.XTThe following query shows counts of data uploads by format type by a specified user:rÆh/j¶h0h1h2hoh4}rÇ(h:]h;]h9]h8]h<]uh=Küh>hh)]rÈh@XTThe following query shows counts of data uploads by format type by a specified user:rÉ…rÊ}rË(h.jÆh/jÄubaubj)rÌ}rÍ(h.Xƒhttp://myd1host/knb/d1/mn/v1/query/stats/q=*:*&fq=rightsHolder:uid=williams*&fq=event:create&facet=true&facet.field=formatId&rows=0h/j¶h0h1h2jh4}rÎ(h6h7h8]h9]h:]h;]h<]uh=Mh>hh)]rÏh@Xƒhttp://myd1host/knb/d1/mn/v1/query/stats/q=*:*&fq=rightsHolder:uid=williams*&fq=event:create&facet=true&facet.field=formatId&rows=0rÐ…rÑ}rÒ(h.Uh/jÌubaubj)rÓ}rÔ(h.XÎ ... 2 1 0 h/j¶h0h1h2jh4}rÕ(h6h7h8]h9]h:]h;]h<]uh=Mh>hh)]rÖh@XÎ ... 2 1 0 r×…rØ}rÙ(h.Uh/jÓubaubeubhK)rÚ}rÛ(h.Uh/jeh0h1h2hNh4}rÜ(h:]h;]h9]h8]rÝh$ah<]rÞhauh=Mh>hh)]rß(hS)rà}rá(h.XData downloadsrâh/jÚh0h1h2hWh4}rã(h:]h;]h9]h8]h<]uh=Mh>hh)]räh@XData downloadsrå…ræ}rç(h.jâh/jàubaubhk)rè}ré(h.XYThe following query shows data download counts by a specific user for each month in 2013:rêh/jÚh0h1h2hoh4}rë(h:]h;]h9]h8]h<]uh=Mh>hh)]rìh@XYThe following query shows data download counts by a specific user for each month in 2013:rí…rî}rï(h.jêh/jèubaubj)rð}rñ(h.Xúhttp://myd1host/knb/d1/mn/v1/query/stats/q=*:*&fq=principal:williams&fq=event:read&fq=formatId:BIN&facet=true&facet.field=event&facet.range=datetime&facet.range.start=2013-01-01T01:01:01Z&facet.range.end=2013-12-31T24:59:59Z&facet.range.gap=%2B1MONTHh/jÚh0h1h2jh4}rò(h6h7h8]h9]h:]h;]h<]uh=Mh>hh)]róh@Xúhttp://myd1host/knb/d1/mn/v1/query/stats/q=*:*&fq=principal:williams&fq=event:read&fq=formatId:BIN&facet=true&facet.field=event&facet.range=datetime&facet.range.start=2013-01-01T01:01:01Z&facet.range.end=2013-12-31T24:59:59Z&facet.range.gap=%2B1MONTHrô…rõ}rö(h.Uh/jðubaubj)r÷}rø(h.XÁ ... 0 0 0 0 0 2 1 0 0 0 0 0 +1MONTH 2013-01-01T01:01:01Z 2014-01-01T01:01:01Z h/jÚh0h1h2jh4}rù(h6h7h8]h9]h:]h;]h<]uh=M!h>hh)]rúh@XÁ ... 0 0 0 0 0 2 1 0 0 0 0 0 +1MONTH 2013-01-01T01:01:01Z 2014-01-01T01:01:01Z rû…rü}rý(h.Uh/j÷ubaubhk)rþ}rÿ(h.X[The following query shows EML metadata downloads by a specific user for each month in 2013.rh/jÚh0h1h2hoh4}r(h:]h;]h9]h8]h<]uh=M<h>hh)]rh@X[The following query shows EML metadata downloads by a specific user for each month in 2013.r…r}r(h.jh/jþubaubj)r}r(h.Xþhttp://myd1host/knb/d1/mn/v1/query/stats/q=*:*&fq=principal:*williams*&fq=event:read&fq=formatId:*eml*&facet=true&facet.field=event&facet.range=datetime&facet.range.start=2013-01-01T01:01:01Z&facet.range.end=2013-12-31T24:59:59Z&facet.range.gap=%2B1MONTHh/jÚh0h1h2jh4}r(h6h7h8]h9]h:]h;]h<]uh=M@h>hh)]r h@Xþhttp://myd1host/knb/d1/mn/v1/query/stats/q=*:*&fq=principal:*williams*&fq=event:read&fq=formatId:*eml*&facet=true&facet.field=event&facet.range=datetime&facet.range.start=2013-01-01T01:01:01Z&facet.range.end=2013-12-31T24:59:59Z&facet.range.gap=%2B1MONTHr …r }r (h.Uh/jubaubj)r }r(h.XÅ ... 0 0 0 1 1 0 2 0 0 0 0 0 +1MONTH 2013-01-01T01:01:01Z 2014-01-01T01:01:01Z h/jÚh0h1h2jh4}r(h6h7h8]h9]h:]h;]h<]uh=MDh>hh)]rh@XÅ ... 0 0 0 1 1 0 2 0 0 0 0 0 +1MONTH 2013-01-01T01:01:01Z 2014-01-01T01:01:01Z r…r}r(h.Uh/j ubaubeubeubhK)r}r(h.Uh/hLh0h1h2hNh4}r(h:]h;]h9]h8]rh%ah<]rhauh=M`h>hh)]r(hS)r}r(h.XUnresolved Issues/Questionsrh/jh0h1h2hWh4}r(h:]h;]h9]h8]h<]uh=M`h>hh)]rh@XUnresolved Issues/Questionsr…r }r!(h.jh/jubaubh©)r"}r#(h.Uh/jh0Nh2h¬h4}r$(h:]h;]h9]h8]h<]uh=Nh>hh)]r%cdocutils.nodes enumerated_list r&)r'}r((h.Uh4}r)(Usuffixr*U.h8]h9]h:]Uprefixr+Uh;]h<]Uenumtyper,Uarabicr-uh/j"h)]r.(hµ)r/}r0(h.XHHow is the location of an event determined? What do we mean by location?r1h4}r2(h:]h;]h9]h8]h<]uh/j'h)]r3hk)r4}r5(h.j1h/j/h0h1h2hoh4}r6(h:]h;]h9]h8]h<]uh=Mbh)]r7h@XHHow is the location of an event determined? What do we mean by location?r8…r9}r:(h.j1h/j4ubaubah2hÂubhµ)r;}r<(h.X?Currently Solr (3.x and 4.x) doesn’t allow faceting by date/time interval, so it isn't possible to use the stats component to calculate total download volume for a time interval over a time range, such as every month for the last 10 years. Therefor for calculated amounts, a query for each time interval is required.r=h4}r>(h:]h;]h9]h8]h<]uh/j'h)]r?hk)r@}rA(h.j=h/j;h0h1h2hoh4}rB(h:]h;]h9]h8]h<]uh=Mch)]rCh@X?Currently Solr (3.x and 4.x) doesn’t allow faceting by date/time interval, so it isn't possible to use the stats component to calculate total download volume for a time interval over a time range, such as every month for the last 10 years. Therefor for calculated amounts, a query for each time interval is required.rD…rE}rF(h.j=h/j@ubaubah2hÂubhµ)rG}rH(h.XJWhere will citation info come from? Do we import this into the Solr index?rIh4}rJ(h:]h;]h9]h8]h<]uh/j'h)]rKhk)rL}rM(h.jIh/jGh0h1h2hoh4}rN(h:]h;]h9]h8]h<]uh=Mdh)]rOh@XJWhere will citation info come from? Do we import this into the Solr index?rP…rQ}rR(h.jIh/jLubaubah2hÂubhµ)rS}rT(h.X³Are there text fields that the statistics service should include, i.e. do we want to provide statistics for queries such as "how many pids were downloaded that mention kelp?"? h4}rU(h:]h;]h9]h8]h<]uh/j'h)]rVhk)rW}rX(h.X¯Are there text fields that the statistics service should include, i.e. do we want to provide statistics for queries such as "how many pids were downloaded that mention kelp?"?rYh/jSh0h1h2hoh4}rZ(h:]h;]h9]h8]h<]uh=Meh)]r[h@X¯Are there text fields that the statistics service should include, i.e. do we want to provide statistics for queries such as "how many pids were downloaded that mention kelp?"?r\…r]}r^(h.jYh/jWubaubah2hÂubeh2Uenumerated_listr_ubaubeubeubeh.UU transformerr`NU footnote_refsra}rbUrefnamesrc}rdUsymbol_footnotesre]rfUautofootnote_refsrg]rhUsymbol_footnote_refsri]rjU citationsrk]rlh>hU current_linermNUtransform_messagesrn]roUreporterrpNUid_startrqKU autofootnotesrr]rsU citation_refsrt}ruUindirect_targetsrv]rwUsettingsrx(cdocutils.frontend Values ryorz}r{(Ufootnote_backlinksr|KUrecord_dependenciesr}NU rfc_base_urlr~Uhttps://tools.ietf.org/html/rU tracebackr€ˆUpep_referencesrNUstrip_commentsr‚NU toc_backlinksrƒjöU language_coder„Uenr…U datestampr†NU report_levelr‡KU _destinationrˆNU halt_levelr‰KU strip_classesrŠNhWNUerror_encoding_error_handlerr‹UbackslashreplacerŒUdebugrNUembed_stylesheetrŽ‰Uoutput_encoding_error_handlerrUstrictrU sectnum_xformr‘KUdump_transformsr’NU docinfo_xformr“KUwarning_streamr”NUpep_file_url_templater•Upep-%04dr–Uexit_status_levelr—KUconfigr˜NUstrict_visitorr™NUcloak_email_addressesršˆUtrim_footnote_reference_spacer›‰UenvrœNUdump_pseudo_xmlrNUexpose_internalsržNUsectsubtitle_xformrŸ‰U source_linkr NUrfc_referencesr¡NUoutput_encodingr¢Uutf-8r£U source_urlr¤NUinput_encodingr¥U utf-8-sigr¦U_disable_configr§NU id_prefixr¨UU tab_widthr©KUerror_encodingrªUUTF-8r«U_sourcer¬h1Ugettext_compactr­ˆU generatorr®NUdump_internalsr¯NU smart_quotesr°‰U pep_base_urlr±U https://www.python.org/dev/peps/r²Usyntax_highlightr³Ulongr´Uinput_encoding_error_handlerrµjUauto_id_prefixr¶Uidr·Udoctitle_xformr¸‰Ustrip_elements_with_classesr¹NU _config_filesrº]Ufile_insertion_enabledr»ˆU raw_enabledr¼KU dump_settingsr½NubUsymbol_footnote_startr¾KUidsr¿}rÀ(h(jNh%jhh}h$jÚh#j¶h!h]h hLhj{h&h“hjeh'j jIjDhj¶h"hèuUsubstitution_namesrÁ}rÂh2h>h4}rÃ(h:]h8]h9]Usourceh1h;]h<]uU footnotesrÄ]rÅUrefidsrÆ}rÇub.