I then started looking at the writer types, as I've used configapi to modify
the json one in the past. RequestHandlers are set up via ImplicitPlugins.json,
but writer types aren't:
Query Response Writers vs Request Handlers
Here's how query response writers are handled differently from request handlers:
Request Handlers
- Defined in: ImplicitPlugins.json (as you can see with /update/csv)
- Format: JSON configuration file with explicit handler definitions
- Registration: Loaded from ImplicitPlugins.json and merged with
solrconfig.xml definitions
Query Response Writers
- NOT in ImplicitPlugins.json - They're handled completely differently
- Defined in: SolrCore.java as hard-coded DEFAULT_RESPONSE_WRITERS (static
initialization block, lines 3093-3109)
- Registration:
- Hard-coded defaults are created in a static block in SolrCore.java
- Additional writers can be defined in solrconfig.xml using
<queryResponseWriter> tags
- The PluginBag.init() method merges solrconfig.xml definitions with the
defaults
Does this matter? Seems odd to have two ways to do the same basic thing. If
I wanted to remove CSV as a update type and a witertype, thoughts on how to do
it? Without just going in and doing a custom build of Solr?
Does adding/removing writer types and request handlers come up for anyone else?
This is for someone who is looking for a very locked down version of Solr, but
doens't want a custom build.
Eric
On Friday, December 12, 2025 at 05:45:30 PM EST, Houston Putman
<[email protected]> wrote:
Yeah, I think the config api really only touches the configoverlay.json. So
it makes sense to me that it could only delete things that it originally
made.
- Houston
On Fri, Dec 12, 2025 at 11:57 AM David Eric Pugh via dev <
[email protected]> wrote:
> I was playing around with the Config API, and I wanted to remove the
> /update/csv request handler. I expected just to run:
>
>
> curl -X POST -H 'Content-type:application/json' -d '{
>
> "delete-requesthandler": "/update/csv"
>
> }' http://localhost:8983/solr/techproducts/config
>
>
> However I get back an error. Reading the ref guide
> https://solr.apache.org/guide/solr/latest/configuration-guide/config-api.html#commands-to-modify-the-config
> it
> seems to suggest that while I can delete a request handler I create using
> the Config API, I can't delete one that comes with Solr?
>
> Does this resonate with other folks? Why can't I use Config API to remove
> any request handler? Is it because we only delete things that exist in
> the configoverlay.json file?
> Eric
>