- for errors, use HTTP error codes instead of putting it in the XML as now.
yes!
- more REST like?
I would like the URL form to look like this: /solr/${verb}/?param=value¶m=value... or: /solr/${verb}/${handler}/?param=value¶m=value... Commands should work with or without the trailing '/' /solr/query should continue to support qt=dismax, but I don't think we should add params for 'at' (add type) 'ct' (commit type) etc... Examples: /solr/query/?q=... (use standard) /solr/query/dismax/?q=... /solr/add/ POST: <docs>...</docs> /solr/add/sql/?q=SELECT * /solr/add/csv/?param=xxx... POST (fileupload): file.csv /solr/commit/?waitSearcher=true /solr/delete/?id=AAA&id=BBB&q=id:[* TO CCC] /solr/optimize/?waitSearcher=true RequestHandlers would be registered with a verb (command?) in solrconfig.xml <requestHandler command="query" name="dismax" ...> <requestHandler command="add" name="xml" class="..> <requestHandler command="add" name="sql" class="..> <requestHandler command="commit" ..> RequestHandlers would register verb/name not just name. It would also be nice to specify the default handler in solrconfig.xml (rather then hardcoded to 'standard') <requestHandler command="query" name="dismax" isDefault="true">
DEL /solr/document?id=1003 OR POST /solr/document/delete?id=1003
I think the request method should be added to the base SolrRequest and let the handler decide if it will do something different for GET vs. POST vs. DEL Conceptually /commit should be a POST, but it may be nice to use your bowser (GET) to run commands like: /solr/commit?waitSearcher=true If the method is passed to the RequestHandler, this will let anyone who is unhappy with the standard behavior change it easily. Someone may want to require you send DEL to delete and POST to change anything -- or the opposite if you care.
- administrative commands, setting certain limits POST /solr/command/set&mergeFactor=100&maxBufferedDocs=1000 POST /solr/command/set&logLevel=3
In my proposal, this could be something like: /solr/setconfig?logLevel=3 If someone wrote a handler that set the variables, then saved them in solrconfig.xml, it could be: /solr/setconfig/save/?mergeFactor=100 good good ryan