You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Noble Paul (JIRA)" <ji...@apache.org> on 2015/04/06 05:08:14 UTC

[jira] [Issue Comment Deleted] (SOLR-7054) a pure REST interface for all operations in Solr

     [ https://issues.apache.org/jira/browse/SOLR-7054?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Noble Paul updated SOLR-7054:
-----------------------------
    Comment: was deleted

(was: Thanks Alexandre. I opened this ticket as a place to discus and finalize a clean interface instead of our myriad different APIs. Please feel free to suggest alternatives
 
bq.Commit. How do you express that?

same as the /update handler 
POST /docs?commit=true

bq. Default, etc. parameters? UpdateRequestChains? Do they just apply universally? 
haven't yet though through it fully. I would like to use the useParams feature

my suggestion:
different http method gets a separate paramset  ,

write-params="update_param_set" read-params="select_paramset"

{{write-params}} could be  a short form for a union of {{post-params}}, {{put-params}}, {{delete-params}}
whereas {{read-params}} could be a short form for a union of {{get-params}} , {{head-params}}

Going forward we should open up full REST support to all paths . So we should adopt a common mechanism for separate param sets all HTTP methods

example:
{code:xml}
<requestHandler name="/docs" class="solr.RESTHandler"  write-params="update_paramset" read-params="select_paramset" />
<requestHandler name="/update" class="solr.UpdaterequestHandler"  useParams="update_paramset" />
<requestHandler name="/select" class="solr.SearchHandler"  useParams="update_paramset" />
{code}
bq.What happens with custom end-points? Or is /docs just a new end-point and the rest maintain the old syntax?
yes, you are right,  /docs just a new end-point and mainly a replacement for {{/update/*}} , {{/select}} and {{/get}}



)

> a pure REST interface for all operations in Solr
> ------------------------------------------------
>
>                 Key: SOLR-7054
>                 URL: https://issues.apache.org/jira/browse/SOLR-7054
>             Project: Solr
>          Issue Type: Improvement
>            Reporter: Noble Paul
>
> It would be a single handler say {{/docs}}
> GET would do a query
> GET /docs is equivalent to /select/q=*:*
> GET /docs?q=a:b will be equivalent to /select?q=a:b
> GET /docs/docId will be equivalent to /select?q=id:docId
> PUT/POST /docs is equivalent to /update and the default format for json would be that of /update/json/docs
> DELETE /docs/id will do a delete by id
> DELETE /docs?q=x:val is delete by query
> We can think of implementing this as a new {{RequestHandler}} without changing anything in Solr. Itcan be configured as follows
> {code:xml}
> <requestHandler name="/docs" class="RestRequestHandler" 
>   get="/select" <!--This will just use the /select handler to handle http GET -->
>   post="/update/json/docs" <!-- All POST requests will use the handloer configured at /update/json/docs -->
>   put="/update/json/docs" <!-- PUT requests will use same as POST -->
>   delete="/update"/> <!-- DELETE requests will use /update as well --> 
> {code}
>   
>   



--
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