€cdocutils.nodes document q)q}q(U nametypesq}q(XsolrqˆXgoalqNXtriggersqNXimplementationq NXfull text searchq NXlimiting returned fieldsq NXpaging response recordsq NXsummaryq NXlist search fields offeredqNX xmlstarletqˆXactorsqNXexamplesqNXpost conditionsqNX preconditionsqNXuc02qˆX!use case 02 - list pids by searchqNXcontentsqNX discover available query enginesqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q (hUsolrq!hUgoalq"hUtriggersq#h Uimplementationq$h Ufull-text-searchq%h Ulimiting-returned-fieldsq&h Upaging-response-recordsq'h Usummaryq(hUlist-search-fields-offeredq)hU xmlstarletq*hUactorsq+hUexamplesq,hUpost-conditionsq-hU preconditionsq.hUuc02q/hUuse-case-02-list-pids-by-searchq0hUcontentsq1hU discover-available-query-enginesq2uUchildrenq3]q4(cdocutils.nodes target q5)q6}q7(U rawsourceq8X .. _UC02:Uparentq9hUsourceq:Xj/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/UseCases/02_uc.txtq;Utagnameq}q?(Uidsq@]UbackrefsqA]UdupnamesqB]UclassesqC]UnamesqD]UrefidqEh/uUlineqFKUdocumentqGhh3]ubcdocutils.nodes section qH)qI}qJ(h8Uh9hh:h;Uexpect_referenced_by_nameqK}qLhh6sh}qN(hB]hC]hA]h@]qO(h0h/ehD]qP(hheuhFKhGhUexpect_referenced_by_idqQ}qRh/h6sh3]qS(cdocutils.nodes title qT)qU}qV(h8X!Use Case 02 - List PIDs By SearchqWh9hIh:h;h}qY(hB]hC]hA]h@]hD]uhFKhGhh3]qZcdocutils.nodes Text q[X!Use Case 02 - List PIDs By Searchq\…q]}q^(h8hWh9hUubaubcsphinx.addnodes index q_)q`}qa(h8Uh9hIh:h;h}qc(h@]hA]hB]hC]hD]Uentriesqd]qe((UsingleqfX Use Case 02Uindex-0qgUNtqh(hfXListhgUNtqi(hfXSearchhgUNtqj(hfXQueryhgUNtqkeUinlineql‰uhFKhGhh3]ubh5)qm}qn(h8Uh9hIh:h;h}qo(h@]hA]hB]hC]hD]hEhguhFKhGhh3]ubcdocutils.nodes topic qp)qq}qr(h8Uh9hIh:h;hK}h}qt(hB]hC]qu(UcontentsqvUlocalqwehA]h@]qx(h1hgehD]qyhauhFK hGhhQ}qzhghmsh3]q{(hT)q|}q}(h8XContentsq~h>}q(hB]hC]hA]h@]hD]uh9hqh3]q€h[XContentsq…q‚}qƒ(h8h~h9h|ubah}qˆ(hB]hC]hA]h@]hD]uhFNhGhh3]q‰(cdocutils.nodes list_item qŠ)q‹}qŒ(h8Uh>}q(hB]hC]hA]h@]hD]uh9h…h3]qŽcdocutils.nodes paragraph q)q}q‘(h8Uh>}q’(hB]hC]hA]h@]hD]uh9h‹h3]q“cdocutils.nodes reference q”)q•}q–(h8Uh>}q—(h@]q˜Uid1q™ahA]hB]hC]hD]Urefidh"uh9hh3]qšh[XGoalq›…qœ}q(h8XGoalqžh9h•ubah}q¤(hB]hC]hA]h@]hD]uh9h…h3]q¥h)q¦}q§(h8Uh>}q¨(hB]hC]hA]h@]hD]uh9h¢h3]q©h”)qª}q«(h8Uh>}q¬(h@]q­Uid2q®ahA]hB]hC]hD]Urefidh(uh9h¦h3]q¯h[XSummaryq°…q±}q²(h8XSummaryq³h9hªubah}q¶(hB]hC]hA]h@]hD]uh9h…h3]q·h)q¸}q¹(h8Uh>}qº(hB]hC]hA]h@]hD]uh9h´h3]q»h”)q¼}q½(h8Uh>}q¾(h@]q¿Uid3qÀahA]hB]hC]hD]Urefidh+uh9h¸h3]qÁh[XActorsqÂ…qÃ}qÄ(h8XActorsqÅh9h¼ubah}qÈ(hB]hC]hA]h@]hD]uh9h…h3]qÉh)qÊ}qË(h8Uh>}qÌ(hB]hC]hA]h@]hD]uh9hÆh3]qÍh”)qÎ}qÏ(h8Uh>}qÐ(h@]qÑUid4qÒahA]hB]hC]hD]Urefidh.uh9hÊh3]qÓh[X PreconditionsqÔ…qÕ}qÖ(h8X Preconditionsq×h9hÎubah}qÚ(hB]hC]hA]h@]hD]uh9h…h3]qÛh)qÜ}qÝ(h8Uh>}qÞ(hB]hC]hA]h@]hD]uh9hØh3]qßh”)qà}qá(h8Uh>}qâ(h@]qãUid5qäahA]hB]hC]hD]Urefidh#uh9hÜh3]qåh[XTriggersqæ…qç}qè(h8XTriggersqéh9hàubah}qì(hB]hC]hA]h@]hD]uh9h…h3]qíh)qî}qï(h8Uh>}qð(hB]hC]hA]h@]hD]uh9hêh3]qñh”)qò}qó(h8Uh>}qô(h@]qõUid6qöahA]hB]hC]hD]Urefidh-uh9hîh3]q÷h[XPost Conditionsqø…qù}qú(h8XPost Conditionsqûh9hòubah}qþ(hB]hC]hA]h@]hD]uh9h…h3]qÿh)r}r(h8Uh>}r(hB]hC]hA]h@]hD]uh9hüh3]rh”)r}r(h8Uh>}r(h@]rUid7rahA]hB]hC]hD]Urefidh$uh9jh3]r h[XImplementationr …r }r (h8XImplementationr h9jubah}r(hB]hC]hA]h@]hD]uh9h…h3]r(h)r}r(h8Uh>}r(hB]hC]hA]h@]hD]uh9jh3]rh”)r}r(h8Uh>}r(h@]rUid8rahA]hB]hC]hD]Urefidh,uh9jh3]rh[XExamplesr…r}r(h8XExamplesrh9jubah}r"(hB]hC]hA]h@]hD]uh9jh3]r#(hŠ)r$}r%(h8Uh>}r&(hB]hC]hA]h@]hD]uh9j h3]r'h)r(}r)(h8Uh>}r*(hB]hC]hA]h@]hD]uh9j$h3]r+h”)r,}r-(h8Uh>}r.(h@]r/Uid9r0ahA]hB]hC]hD]Urefidh2uh9j(h3]r1h[X Discover Available Query Enginesr2…r3}r4(h8X Discover Available Query Enginesr5h9j,ubah}r8(hB]hC]hA]h@]hD]uh9j h3]r9h)r:}r;(h8Uh>}r<(hB]hC]hA]h@]hD]uh9j6h3]r=h”)r>}r?(h8Uh>}r@(h@]rAUid10rBahA]hB]hC]hD]Urefidh)uh9j:h3]rCh[XList Search Fields OfferedrD…rE}rF(h8XList Search Fields OfferedrGh9j>ubah}rJ(hB]hC]hA]h@]hD]uh9j h3]rKh)rL}rM(h8Uh>}rN(hB]hC]hA]h@]hD]uh9jHh3]rOh”)rP}rQ(h8Uh>}rR(h@]rSUid11rTahA]hB]hC]hD]Urefidh%uh9jLh3]rUh[XFull Text SearchrV…rW}rX(h8XFull Text SearchrYh9jPubah}r\(hB]hC]hA]h@]hD]uh9j h3]r]h)r^}r_(h8Uh>}r`(hB]hC]hA]h@]hD]uh9jZh3]rah”)rb}rc(h8Uh>}rd(h@]reUid12rfahA]hB]hC]hD]Urefidh&uh9j^h3]rgh[XLimiting Returned Fieldsrh…ri}rj(h8XLimiting Returned Fieldsrkh9jbubah}rn(hB]hC]hA]h@]hD]uh9j h3]roh)rp}rq(h8Uh>}rr(hB]hC]hA]h@]hD]uh9jlh3]rsh”)rt}ru(h8Uh>}rv(h@]rwUid13rxahA]hB]hC]hD]Urefidh'uh9jph3]ryh[XPaging Response Recordsrz…r{}r|(h8XPaging Response Recordsr}h9jtubah}r€(hB]hC]hA]h@]rh"ahD]r‚hauhFK hGhh3]rƒ(hT)r„}r…(h8hžh9j~h:h;h}r†(h@]hA]hB]hC]hD]hEh™uhFK hGhh3]r‡h[XGoalrˆ…r‰}rŠ(h8hžh9j„ubaubh)r‹}rŒ(h8XDGet list of PIDs from metadata search (anonymous and authenticated).rh9j~h:h;h}rŽ(hB]hC]hA]h@]hD]uhFKhGhh3]rh[XDGet list of PIDs from metadata search (anonymous and authenticated).r…r‘}r’(h8jh9j‹ubaubeubhH)r“}r”(h8Uh9hIh:h;h}r•(hB]hC]hA]h@]r–h(ahD]r—h auhFKhGhh3]r˜(hT)r™}rš(h8h³h9j“h:h;h}r›(h@]hA]hB]hC]hD]hEh®uhFKhGhh3]rœh[XSummaryr…rž}rŸ(h8h³h9j™ubaubh)r }r¡(h8XñA user performs a search against the DataONE system and receives a list of object identifiers (PIDs) that match the search criteria. The list of PIDs is filtered such that only objects for which the user has read permission will be returned.r¢h9j“h:h;h}r£(hB]hC]hA]h@]hD]uhFKhGhh3]r¤h[XñA user performs a search against the DataONE system and receives a list of object identifiers (PIDs) that match the search criteria. The list of PIDs is filtered such that only objects for which the user has read permission will be returned.r¥…r¦}r§(h8j¢h9j ubaubh)r¨}r©(h8XEContent discovery in DataONE is achieved primarily through the service interfaces provided by the Coordinating Nodes. Other systems may index content available in DataONE (:doc:`UC34<34_uc>`), though the operation of those systems is out of scope for DataONE operations except that the exposed APIs enable such functionality.h9j“h:h;h}rª(hB]hC]hA]h@]hD]uhFKhGhh3]r«(h[X¬Content discovery in DataONE is achieved primarily through the service interfaces provided by the Coordinating Nodes. Other systems may index content available in DataONE (r¬…r­}r®(h8X¬Content discovery in DataONE is achieved primarily through the service interfaces provided by the Coordinating Nodes. Other systems may index content available in DataONE (h9j¨ubcsphinx.addnodes pending_xref r¯)r°}r±(h8X:doc:`UC34<34_uc>`r²h9j¨h:h;h}r´(UreftypeXdocrµUrefwarnr¶ˆU reftargetr·X34_ucU refdomainUh@]hA]U refexplicitˆhB]hC]hD]Urefdocr¸Xdesign/UseCases/02_ucr¹uhFKh3]rºcdocutils.nodes inline r»)r¼}r½(h8j²h>}r¾(hB]hC]r¿(UxrefrÀjµehA]h@]hD]uh9j°h3]rÁh[XUC34rÂ…rÃ}rÄ(h8Uh9j¼ubah}rÊ(hB]hC]hA]h@]rËh+ahD]rÌhauhFKhGhh3]rÍ(hT)rÎ}rÏ(h8hÅh9jÈh:h;h}rÐ(h@]hA]hB]hC]hD]hEhÀuhFKhGhh3]rÑh[XActorsrÒ…rÓ}rÔ(h8hÅh9jÎubaubh„)rÕ}rÖ(h8Uh9jÈh:h;h}r×(UbulletrØX-h@]hA]hB]hC]hD]uhFK!hGhh3]rÙ(hŠ)rÚ}rÛ(h8X"Client performing search operationrÜh9jÕh:h;h}rÝ(hB]hC]hA]h@]hD]uhFNhGhh3]rÞh)rß}rà(h8jÜh9jÚh:h;h}rá(hB]hC]hA]h@]hD]uhFK!h3]râh[X"Client performing search operationrã…rä}rå(h8jÜh9jßubaubaubhŠ)ræ}rç(h8XCoordinating Node h9jÕh:h;h}rè(hB]hC]hA]h@]hD]uhFNhGhh3]réh)rê}rë(h8XCoordinating Noderìh9jæh:h;h}rí(hB]hC]hA]h@]hD]uhFK"h3]rîh[XCoordinating Noderï…rð}rñ(h8jìh9jêubaubaubeubcsphinxcontrib.plantuml plantuml rò)ró}rô(h8XH.. uml:: @startuml images/02_uc.png actor User usecase "12. Authentication" as authen actor "Coordinating Node" as CN usecase "13. Authorization" as author usecase "02. Search Metadata" as SEARCH User -- SEARCH CN -- SEARCH SEARCH ..> author: <> SEARCH ..> authen: <> @enduml h9jÈh:h;h}rö(h@]hA]hB]hC]hD]Uumlr÷X'@startuml images/02_uc.png actor User usecase "12. Authentication" as authen actor "Coordinating Node" as CN usecase "13. Authorization" as author usecase "02. Search Metadata" as SEARCH User -- SEARCH CN -- SEARCH SEARCH ..> author: <> SEARCH ..> authen: <> @endumluhFK3hGhh3]ubh)rø}rù(h8X6**Figure 1.** Actors and dependencies for Use Case 02.rúh9jÈh:h;h}rû(hB]hC]hA]h@]hD]uhFK4hGhh3]rü(cdocutils.nodes strong rý)rþ}rÿ(h8X **Figure 1.**h>}r(hB]hC]hA]h@]hD]uh9jøh3]rh[X Figure 1.r…r}r(h8Uh9jþubah}r (hB]hC]hA]h@]r h.ahD]r hauhFK8hGhh3]r(hT)r}r(h8h×h9j h:h;h}r(h@]hA]hB]hC]hD]hEhÒuhFK8hGhh3]rh[X Preconditionsr…r}r(h8h×h9jubaubh„)r}r(h8Uh9j h:h;h}r(jØX-h@]hA]hB]hC]hD]uhFK:hGhh3]rhŠ)r}r(h8XyClient has authenticated to at the desired level (e.g. client may not have authenticated, so access might be anonymous). h9jh:h;h}r(hB]hC]hA]h@]hD]uhFNhGhh3]rh)r}r(h8XxClient has authenticated to at the desired level (e.g. client may not have authenticated, so access might be anonymous).r h9jh:h;h}r!(hB]hC]hA]h@]hD]uhFK:h3]r"h[XxClient has authenticated to at the desired level (e.g. client may not have authenticated, so access might be anonymous).r#…r$}r%(h8j h9jubaubaubaubeubhH)r&}r'(h8Uh9hIh:h;h}r((hB]hC]hA]h@]r)h#ahD]r*hauhFK>hGhh3]r+(hT)r,}r-(h8héh9j&h:h;h}r.(h@]hA]hB]hC]hD]hEhäuhFK>hGhh3]r/h[XTriggersr0…r1}r2(h8héh9j,ubaubh„)r3}r4(h8Uh9j&h:h;h}r5(jØX-h@]hA]hB]hC]hD]uhFK@hGhh3]r6hŠ)r7}r8(h8X2A search is performed against the DataONE system h9j3h:h;h}r9(hB]hC]hA]h@]hD]uhFNhGhh3]r:h)r;}r<(h8X0A search is performed against the DataONE systemr=h9j7h:h;h}r>(hB]hC]hA]h@]hD]uhFK@h3]r?h[X0A search is performed against the DataONE systemr@…rA}rB(h8j=h9j;ubaubaubaubeubhH)rC}rD(h8Uh9hIh:h;h}rE(hB]hC]hA]h@]rFh-ahD]rGhauhFKDhGhh3]rH(hT)rI}rJ(h8hûh9jCh:h;h}rK(h@]hA]hB]hC]hD]hEhöuhFKDhGhh3]rLh[XPost ConditionsrM…rN}rO(h8hûh9jIubaubh„)rP}rQ(h8Uh9jCh:h;h}rR(jØX-h@]hA]hB]hC]hD]uhFKFhGhh3]rS(hŠ)rT}rU(h8X•The client has a list of PIDs (:class:`Types.objectList`) for which they have permission to read and match the supplied query or an error condition. h9jPh:h;h}rV(hB]hC]hA]h@]hD]uhFNhGhh3]rWh)rX}rY(h8X”The client has a list of PIDs (:class:`Types.objectList`) for which they have permission to read and match the supplied query or an error condition.h9jTh:h;h}rZ(hB]hC]hA]h@]hD]uhFKFh3]r[(h[XThe client has a list of PIDs (r\…r]}r^(h8XThe client has a list of PIDs (h9jXubj¯)r_}r`(h8X:class:`Types.objectList`rah9jXh:h;h}rb(UreftypeXclassj¶‰j·XTypes.objectListU refdomainXpyrch@]hA]U refexplicit‰hB]hC]hD]j¸j¹Upy:classrdNU py:modulereNuhFKFh3]rfcdocutils.nodes literal rg)rh}ri(h8jah>}rj(hB]hC]rk(jÀjcXpy-classrlehA]h@]hD]uh9j_h3]rmh[XTypes.objectListrn…ro}rp(h8Uh9jhubah}rw(hB]hC]hA]h@]hD]uhFNhGhh3]rxh)ry}rz(h8X5The log is updated with information about the requestr{h9juh:h;h}r|(hB]hC]hA]h@]hD]uhFKIh3]r}h[X5The log is updated with information about the requestr~…r}r€(h8j{h9jyubaubaubeubeubhH)r}r‚(h8Uh9hIh:h;h}rƒ(hB]hC]hA]h@]r„h$ahD]r…h auhFKMhGhh3]r†(hT)r‡}rˆ(h8j h9jh:h;h}r‰(h@]hA]hB]hC]hD]hEjuhFKMhGhh3]rŠh[XImplementationr‹…rŒ}r(h8j h9j‡ubaubjò)rŽ}r(h8X4.. uml:: @startuml images/02_seq.png participant "Client" as app_client << Application >> participant "Query API" as c_query << Coordinating Node >> participant "Authentication API" as c_authenticate << Coordinating Node >> participant "Read API" as c_crud << Coordinating Node >> app_client -> c_query: search(session, query) activate c_query c_query -> c_query: search -> objectList note right of c_query The query response is a list of PIDs. Each ID needs to be checked for read access by the authenticated user. end note loop for pid in objectList c_query -> c_authenticate: isAuthorized(session, pid, OP_GET) c_query <-- c_authenticate: T or F end c_query --> c_crud: log app_client <-- c_query: objectList deactivate c_query @enduml h9jh:h;h}r(h@]hA]hB]hC]hD]j÷Xÿ@startuml images/02_seq.png participant "Client" as app_client << Application >> participant "Query API" as c_query << Coordinating Node >> participant "Authentication API" as c_authenticate << Coordinating Node >> participant "Read API" as c_crud << Coordinating Node >> app_client -> c_query: search(session, query) activate c_query c_query -> c_query: search -> objectList note right of c_query The query response is a list of PIDs. Each ID needs to be checked for read access by the authenticated user. end note loop for pid in objectList c_query -> c_authenticate: isAuthorized(session, pid, OP_GET) c_query <-- c_authenticate: T or F end c_query --> c_crud: log app_client <-- c_query: objectList deactivate c_query @endumluhFKghGhh3]ubh)r‘}r’(h8XÑ**Figure 2.** Interaction diagram for Use Case 02. The process for determining READ access is for illustration purposes only. Actually implementation may vary (e.g. by augmenting the query used for searching).h9jh:h;h}r“(hB]hC]hA]h@]hD]uhFKhhGhh3]r”(jý)r•}r–(h8X **Figure 2.**h>}r—(hB]hC]hA]h@]hD]uh9j‘h3]r˜h[X Figure 2.r™…rš}r›(h8Uh9j•ubah}r¡(hB]hC]hA]h@]r¢h,ahD]r£hauhFKnhGhh3]r¤(hT)r¥}r¦(h8jh9jŸh:h;h}r§(h@]hA]hB]hC]hD]hEjuhFKnhGhh3]r¨h[XExamplesr©…rª}r«(h8jh9j¥ubaubh)r¬}r­(h8XzSearch is implemented by the Coordinating Nodes and optionally by Member Nodes. Two discovery endpoints are provided by Coordinating Nodes: query and search. The search endpoint provides a response that is more constrained than the search endpoint, with only an ObjetList structure being returned. It is recommended that general searches be performed against the query endpoint.r®h9jŸh:h;h}r¯(hB]hC]hA]h@]hD]uhFKphGhh3]r°h[XzSearch is implemented by the Coordinating Nodes and optionally by Member Nodes. Two discovery endpoints are provided by Coordinating Nodes: query and search. The search endpoint provides a response that is more constrained than the search endpoint, with only an ObjetList structure being returned. It is recommended that general searches be performed against the query endpoint.r±…r²}r³(h8j®h9j¬ubaubh)r´}rµ(h8XgThe following examples assume a Coordinating Node base URL is set in the ${NODE} variable, for example:r¶h9jŸh:h;h}r·(hB]hC]hA]h@]hD]uhFKvhGhh3]r¸h[XgThe following examples assume a Coordinating Node base URL is set in the ${NODE} variable, for example:r¹…rº}r»(h8j¶h9j´ubaubcdocutils.nodes literal_block r¼)r½}r¾(h8X'export NODE="https://cn.dataone.org/cn"h9jŸh:h;h}rÀ(UlinenosrÁ‰UlanguagerÂXbashU xml:spacerÃUpreserverÄh@]hA]hB]Uhighlight_argsrÅ}hC]hD]uhFKyhGhh3]rÆh[X'export NODE="https://cn.dataone.org/cn"rÇ…rÈ}rÉ(h8Uh9j½ubaubcdocutils.nodes note rÊ)rË}rÌ(h8XsFor more example queries and detailed description of the various fields, please visit :doc:`/design/SearchMetadata`h9jŸh:h;h}rÎ(hB]hC]hA]h@]hD]uhFNhGhh3]rÏh)rÐ}rÑ(h8XsFor more example queries and detailed description of the various fields, please visit :doc:`/design/SearchMetadata`h9jËh:h;h}rÒ(hB]hC]hA]h@]hD]uhFK~h3]rÓ(h[XVFor more example queries and detailed description of the various fields, please visit rÔ…rÕ}rÖ(h8XVFor more example queries and detailed description of the various fields, please visit h9jÐubj¯)r×}rØ(h8X:doc:`/design/SearchMetadata`rÙh9jÐh:h;h}rÚ(UreftypeXdocrÛj¶ˆj·X/design/SearchMetadataU refdomainUh@]hA]U refexplicit‰hB]hC]hD]j¸j¹uhFK~h3]rÜj»)rÝ}rÞ(h8jÙh>}rß(hB]hC]rà(jÀjÛehA]h@]hD]uh9j×h3]ráh[X/design/SearchMetadatarâ…rã}rä(h8Uh9jÝubah}rç(hB]hC]hA]h@]hD]uhFNhGhh3]rè(h)ré}rê(h8XÈThe actual response XML may be more compressed than the examples below show. For easier viewing, pipe the response throug the xmlstarlet_ command line tool using the format ("fo") option. For example:h9jåh:h;h}rë(hB]hC]hA]h@]hD]uhFKƒh3]rì(h[X~The actual response XML may be more compressed than the examples below show. For easier viewing, pipe the response throug the rí…rî}rï(h8X~The actual response XML may be more compressed than the examples below show. For easier viewing, pipe the response throug the h9jéubh”)rð}rñ(h8X xmlstarlet_UresolvedròKh9jéh}ró(UnameX xmlstarletrôUrefurirõXhttp://xmlstar.sourceforge.net/röh@]hA]hB]hC]hD]uh3]r÷h[X xmlstarletrø…rù}rú(h8Uh9jðubaubh[X? command line tool using the format ("fo") option. For example:rû…rü}rý(h8X? command line tool using the format ("fo") option. For example:h9jéubeubj¼)rþ}rÿ(h8Xcurl ${NODE}/v1/query | xml foh9jåh:h;h}r(jÁ‰jÂXbashjÃjÄh@]hA]hB]jÅ}hC]hD]uhFK‡h3]rh[Xcurl ${NODE}/v1/query | xml for…r}r(h8Uh9jþubaubeubhH)r}r(h8Uh9jŸh:h;h}r(hB]hC]hA]h@]rh2ahD]r hauhFKŽhGhh3]r (hT)r }r (h8j5h9jh:h;h}r (h@]hA]hB]hC]hD]hEj0uhFKŽhGhh3]rh[X Discover Available Query Enginesr…r}r(h8j5h9j ubaubh)r}r(h8XETo discover the query engines (search indexes) supported on the node:rh9jh:h;h}r(hB]hC]hA]h@]hD]uhFKhGhh3]rh[XETo discover the query engines (search indexes) supported on the node:r…r}r(h8jh9jubaubj¼)r}r(h8Xp$ curl ${NODE}/v1/query solr logsolr h9jh:h;h}r(jÁ‰jÂXxmljÃjÄh@]hA]hB]jÅ}hC]hD]uhFK’hGhh3]rh[Xp$ curl ${NODE}/v1/query solr logsolr r…r}r (h8Uh9jubaubh)r!}r"(h8X;The response show two query engines available ``solr`` and ``logsolr``. The ``solr`` query engine provides access to content (data, metadata, resource maps) that have been indexed by the Coordinating Nodes. The ``logsolr`` endpoint provides access to log records that have been aggregated by the Coordinating Nodes.h9jh:h;h}r#(hB]hC]hA]h@]hD]uhFKŸhGhh3]r$(h[X.The response show two query engines available r%…r&}r'(h8X.The response show two query engines available h9j!ubjg)r(}r)(h8X``solr``h>}r*(hB]hC]hA]h@]hD]uh9j!h3]r+h[Xsolrr,…r-}r.(h8Uh9j(ubah}r4(hB]hC]hA]h@]hD]uh9j!h3]r5h[Xlogsolrr6…r7}r8(h8Uh9j2ubah}r>(hB]hC]hA]h@]hD]uh9j!h3]r?h[Xsolrr@…rA}rB(h8Uh9j<ubah}rH(hB]hC]hA]h@]hD]uh9j!h3]rIh[XlogsolrrJ…rK}rL(h8Uh9jFubah}rR(hB]hC]hA]h@]rSh)ahD]rThauhFK§hGhh3]rU(hT)rV}rW(h8jGh9jPh:h;h}rX(h@]hA]hB]hC]hD]hEjBuhFK§hGhh3]rYh[XList Search Fields OfferedrZ…r[}r\(h8jGh9jVubaubh)r]}r^(h8XtTo determine the search fields provided by a query engine, append the value of a ``queryEngine`` element to the url:h9jPh:h;h}r_(hB]hC]hA]h@]hD]uhFK©hGhh3]r`(h[XQTo determine the search fields provided by a query engine, append the value of a ra…rb}rc(h8XQTo determine the search fields provided by a query engine, append the value of a h9j]ubjg)rd}re(h8X``queryEngine``h>}rf(hB]hC]hA]h@]hD]uh9j]h3]rgh[X queryEnginerh…ri}rj(h8Uh9jdubah 3.4.0.2011.09.20.17.19.53 1.1 solr https://releases.dataone.org/online/api-documentation-v1.2.0/ abstract The full text of the abstract as provided in the science metadata document. text true true true false attribute Multi-valued field containing the text from attributeName, attributeLabel, attributeDescription, attributeUnit fields into a single searchable text field. text true true true true attributeDescription Multi-valued field containing the attribute descriptive text. text true true true true attributeLabel Multi-valued field containing secondary attribute name information. string true true true true ... h9jPh:h;h}rp(jÁ‰jÂXxmljÃjÄh@]hA]hB]jÅ}hC]hD]uhFK¬hGhh3]rqh[XÊ$ curl ${NODE}/v1/query/solr 3.4.0.2011.09.20.17.19.53 1.1 solr https://releases.dataone.org/online/api-documentation-v1.2.0/ abstract The full text of the abstract as provided in the science metadata document. text true true true false attribute Multi-valued field containing the text from attributeName, attributeLabel, attributeDescription, attributeUnit fields into a single searchable text field. text true true true true attributeDescription Multi-valued field containing the attribute descriptive text. text true true true true attributeLabel Multi-valued field containing secondary attribute name information. string true true true true ... rr…rs}rt(h8Uh9jnubaubeubhH)ru}rv(h8Uh9jŸh:h;h}rw(hB]hC]hA]h@]rxh%ahD]ryh auhFKêhGhh3]rz(hT)r{}r|(h8jYh9juh:h;h}r}(h@]hA]hB]hC]hD]hEjTuhFKêhGhh3]r~h[XFull Text Searchr…r€}r(h8jYh9j{ubaubh)r‚}rƒ(h8X»The solr endpoint supports standard solr_ query syntax and construct. To search all text for the string "water", the query "text:water" could be used. Expressed as a command line request:h9juh:h;h}r„(hB]hC]hA]h@]hD]uhFKìhGhh3]r…(h[X$The solr endpoint supports standard r†…r‡}rˆ(h8X$The solr endpoint supports standard h9j‚ubh”)r‰}rŠ(h8Xsolr_jòKh9j‚h}r‹(UnameXsolrrŒjõX;https://lucene.apache.org/core/2_9_4/queryparsersyntax.htmlrh@]hA]hB]hC]hD]uh3]rŽh[Xsolrr…r}r‘(h8Uh9j‰ubaubh[X’ query syntax and construct. To search all text for the string "water", the query "text:water" could be used. Expressed as a command line request:r’…r“}r”(h8X’ query syntax and construct. To search all text for the string "water", the query "text:water" could be used. Expressed as a command line request:h9j‚ubeubj¼)r•}r–(h8X–$ curl "${NODE}/v1/query/solr/?q=text:water" 0 5 text:water 1 ... h9juh:h;h}r—(jÁ‰jÂXxmljÃjÄh@]hA]hB]jÅ}hC]hD]uhFKðhGhh3]r˜h[X–$ curl "${NODE}/v1/query/solr/?q=text:water" 0 5 text:water 1 ... r™…rš}r›(h8Uh9j•ubaubh)rœ}r(h8XÐwhich indicates there were 139455 matches. The response is the standard solr XML response (json may be returned by adding ``&wt=json`` to the url), with ```` elements holding the actual response records.h9juh:h;h}rž(hB]hC]hA]h@]hD]uhFMhGhh3]rŸ(h[Xzwhich indicates there were 139455 matches. The response is the standard solr XML response (json may be returned by adding r …r¡}r¢(h8Xzwhich indicates there were 139455 matches. The response is the standard solr XML response (json may be returned by adding h9jœubjg)r£}r¤(h8X ``&wt=json``h>}r¥(hB]hC]hA]h@]hD]uh9jœh3]r¦h[X&wt=jsonr§…r¨}r©(h8Uh9j£ubah``h>}r¯(hB]hC]hA]h@]hD]uh9jœh3]r°h[Xr±…r²}r³(h8Uh9j­ubah}r¹(hB]hC]hA]h@]rºh&ahD]r»h auhFM hGhh3]r¼(hT)r½}r¾(h8jkh9j·h:h;h}r¿(h@]hA]hB]hC]hD]hEjfuhFM hGhh3]rÀh[XLimiting Returned FieldsrÁ…rÂ}rÃ(h8jkh9j½ubaubh)rÄ}rÅ(h8X"The default solr response returns all fields of the doc records which can be quite verbose. To limit the response, against the standard solr syntax is used with the ``fl`` parameter. For example, to return only the record identifier (PID) and the date the system metadata was last modified:h9j·h:h;h}rÆ(hB]hC]hA]h@]hD]uhFM hGhh3]rÇ(h[X¥The default solr response returns all fields of the doc records which can be quite verbose. To limit the response, against the standard solr syntax is used with the rÈ…rÉ}rÊ(h8X¥The default solr response returns all fields of the doc records which can be quite verbose. To limit the response, against the standard solr syntax is used with the h9jÄubjg)rË}rÌ(h8X``fl``h>}rÍ(hB]hC]hA]h@]hD]uh9jÄh3]rÎh[XflrÏ…rÐ}rÑ(h8Uh9jËubah}r×(jÁ‰jÂXbashjÃjÄh@]hA]hB]jÅ}hC]hD]uhFMhGhh3]rØh[X?$ curl "${NODE}/v1/query/solr/?q=text:water&fl=id,dateModified"rÙ…rÚ}rÛ(h8Uh9jÕubaubj¼)rÜ}rÝ(h8Xè 0 4 id,dateModified text:water 5 2015-03-20T23:18:10.507Z https://pasta.lternet.edu/package/metadata/eml/knb-lter-gce/249/34 2012-06-26T13:50:33.75Z doi:10.6073/AA/knb-lter-gce.249.23 2012-06-26T13:51:00.556Z doi:10.6073/AA/knb-lter-gce.249.16 2012-06-26T13:50:21.131Z doi:10.6073/AA/knb-lter-gce.249.19 ... h9j·h:h;h}rÞ(jÁ‰jÂXxmljÃjÄh@]hA]hB]jÅ}hC]hD]uhFMhGhh3]rßh[Xè 0 4 id,dateModified text:water 5 2015-03-20T23:18:10.507Z https://pasta.lternet.edu/package/metadata/eml/knb-lter-gce/249/34 2012-06-26T13:50:33.75Z doi:10.6073/AA/knb-lter-gce.249.23 2012-06-26T13:51:00.556Z doi:10.6073/AA/knb-lter-gce.249.16 2012-06-26T13:50:21.131Z doi:10.6073/AA/knb-lter-gce.249.19 ... rà…rá}râ(h8Uh9jÜubaubeubhH)rã}rä(h8Uh9jŸh:h;h}rå(hB]hC]hA]h@]ræh'ahD]rçh auhFM:hGhh3]rè(hT)ré}rê(h8j}h9jãh:h;h}rë(h@]hA]hB]hC]hD]hEjxuhFM:hGhh3]rìh[XPaging Response Recordsrí…rî}rï(h8j}h9jéubaubh)rð}rñ(h8X?The solr ``rows`` parameter limits the number of records that are returned in a response, and the ``start`` parameter indicates the 0-based offset of the first records from the start of the set of matching results. For example the second page of records with five results per page would use ``start=5`` and ``count=5``:h9jãh:h;h}rò(hB]hC]hA]h@]hD]uhFM<hGhh3]ró(h[X The solr rô…rõ}rö(h8X The solr h9jðubjg)r÷}rø(h8X``rows``h>}rù(hB]hC]hA]h@]hD]uh9jðh3]rúh[Xrowsrû…rü}rý(h8Uh9j÷ubah}r(hB]hC]hA]h@]hD]uh9jðh3]rh[Xstartr…r}r(h8Uh9jubah}r (hB]hC]hA]h@]hD]uh9jðh3]rh[Xstart=5r…r}r(h8Uh9j ubah}r(hB]hC]hA]h@]hD]uh9jðh3]rh[Xcount=5r…r}r(h8Uh9jubah}r (jÁ‰jÂXbashjÃjÄh@]hA]hB]jÅ}hC]hD]uhFMBhGhh3]r!h[XN$ curl "${NODE}/v1/query/solr/?q=text:water&fl=id,dateModified&start=5&rows=5"r"…r#}r$(h8Uh9jubaubj¼)r%}r&(h8Xu 0 3 id,dateModified 5 text:water 5 2012-06-26T13:51:00.556Z doi:10.6073/AA/knb-lter-gce.249.16 2012-06-26T13:50:21.131Z doi:10.6073/AA/knb-lter-gce.249.19 2012-06-26T13:49:54.779Z doi:10.6073/AA/knb-lter-gce.249.21 2012-06-26T13:49:54.409Z doi:10.6073/AA/knb-lter-gce.249.22 2012-06-26T17:09:59.721Z doi:10.6073/AA/knb-lter-gce.249.17 h9jãh:h;h}r'(jÁ‰jÂXxmljÃjÄh@]hA]hB]jÅ}hC]hD]uhFMFhGhh3]r(h[Xu 0 3 id,dateModified 5 text:water 5 2012-06-26T13:51:00.556Z doi:10.6073/AA/knb-lter-gce.249.16 2012-06-26T13:50:21.131Z doi:10.6073/AA/knb-lter-gce.249.19 2012-06-26T13:49:54.779Z doi:10.6073/AA/knb-lter-gce.249.21 2012-06-26T13:49:54.409Z doi:10.6073/AA/knb-lter-gce.249.22 2012-06-26T17:09:59.721Z doi:10.6073/AA/knb-lter-gce.249.17 r)…r*}r+(h8Uh9j%ubaubh5)r,}r-(h8X/.. _xmlstarlet: http://xmlstar.sourceforge.net/U referencedr.Kh9jãh:h;h}r/(jõjöh@]r0h*ahA]hB]hC]hD]r1hauhFMmhGhh3]ubh5)r2}r3(h8XE.. _solr: https://lucene.apache.org/core/2_9_4/queryparsersyntax.htmlj.Kh9jãh:h;h}r4(jõjh@]r5h!ahA]hB]hC]hD]r6hauhFMnhGhh3]ubeubeubeubeh8UU transformerr7NU footnote_refsr8}r9Urefnamesr:}r;(jŒ]r<j‰ajô]r=jðauUsymbol_footnotesr>]r?Uautofootnote_refsr@]rAUsymbol_footnote_refsrB]rCU citationsrD]rEhGhU current_linerFNUtransform_messagesrG]rH(cdocutils.nodes system_message rI)rJ}rK(h8Uh>}rL(hB]UlevelKh@]hA]Usourceh;hC]hD]UlineKUtypeUINFOrMuh3]rNh)rO}rP(h8Uh>}rQ(hB]hC]hA]h@]hD]uh9jJh3]rRh[X*Hyperlink target "uc02" is not referenced.rS…rT}rU(h8Uh9jOubah}rY(hB]UlevelKh@]hA]Usourceh;hC]hD]UlineKUtypejMuh3]rZh)r[}r\(h8Uh>}r](hB]hC]hA]h@]hD]uh9jWh3]r^h[X-Hyperlink target "index-0" is not referenced.r_…r`}ra(h8Uh9j[ubahjTjPjfjbjxjthghqh+jÈh&j·h.j h!j2h-jCjjh#j&h'jãh(j“höhòh0hIh/hIh,jŸuUsubstitution_namesr´}rµh}r¶(hB]h@]hA]Usourceh;hC]hD]uU footnotesr·]r¸Urefidsr¹}rº(h/]r»h6ahg]r¼hmauub.