I opened https://github.com/apache/solr/pull/1810
Would this be something that *could* be back ported to branch_9x? I added a test that if you have a hostContext defined in your solr.xml, it is ignored in favour of /solr. I don’t have any special logging around it however. Eric > On Jul 27, 2023, at 10:48 PM, Gus Heck <gus.h...@gmail.com> wrote: > > TLDR; I support removing configurability, but not the long term > immutability of /api's current location. > > Cleaning up weirdness and inconsistency seems good, but I don't really like > the fact that we occupy root context, and I was with you until you > advocated setting /api in stone. > > I find it entirely regrettable that we moved API to /api rather than > /solr/api > > @David We are STILL a webapp in a servlet container. Until we ditch Jetty > that will always be true. I don't think we should ignore servlet container > best practices just because we only support one servlet container. We > should be developing toward > > - Breaking our bloated swiss army knife filter into a series of > composable filters > - Converting major functional areas currently baked into the filter into > independent servlets that each re-use said filters (query, update, admin > seem natural candidates to each be a separate servlet. > - Ensuring that our functional core code is not handling dispatch and > passthrough logic by ensuring that the UI is it's own app (and it can > re-use some filters too, like authn/authz oriented which should be separate > filters) > - leaving ourselves latitude to think of creative new ways of leveraging > our container (or not) by not squatting on the root context. > - Leaving the option that creative folks can create companion apps other > than the UI... maybe doing things like tracking docs added, listening for > commit events and notifying an indexer that a document is now > searchable... It certainly would be better if that sort of thing was in a > user supplied war deployed into our jetty than if they have to customize > our code directly... (publishing events somewhere they can get hold of it > within Jetty would have to be added, but that's generic and re-usable). > > Note that all of this remains true no matter how we start jetty... Jetty is > still there, and still calculating dispatch to our servlet context, no > matter what we do. If we want to ditch Jetty entirely, then that's an > entirely different matter. In that case, we certainly can specify any URL > patterns we like because THEN we ARE writing the server. Since day one > however we've always been writing an application, albeit an oddly shaped > one.There's no technical benefit to eliminating /solr or anything like that > (if you really care about length I'm happy to meet you 3/4 of the way at /s > instead of /solr). It's an aesthetic for a bike shed that is built right > where we might someday want a barn or a garage, etc. (and yes to the irony > of me writing a long email about it! :) ). > > So yes to making /solr not user configurable, No to the idea that /api can > never move. Both those locations usage in the tests should maybe be based > on a simple hard coded constant or something simple like that (in case > someone does want /s in the future ;) ), but there certainly shouldn't be > complex logic trying to divine the name of our context or anything like > that. > > -Gus > > On Thu, Jul 27, 2023 at 9:37 PM Ishan Chattopadhyaya < > ichattopadhy...@gmail.com> wrote: > >> +1 >> >> On Fri, 28 Jul, 2023, 1:56 am Eric Pugh, <ep...@opensourceconnections.com> >> wrote: >> >>> Hi all…. In working on SOLR-16800, which let’s us pass in a -solrUrl >>> that is “http://localhost:8983 <http://localhost:8983/>” instead of the >>> current “http://localhost:8983/solr”. This will set us up in the >>> future when V2 api’s get called, and they are under “ >>> http://localhost:8983/api” ;-). >>> >>> As part of that effort, I discovered that the “hostContext”, i.e the >>> “/solr” bit of the URL can actually be changed! For example, “ >>> http://localhost:8983/uf” is a valid Solr URL. >>> >>> There is a bunch of plumbing around hostContext in our tests, including >>> some randomization. See initHostContext and >>> getHostContextSuitableForServletContext in BaseDistributedSearchTestCase >>> for example. >>> >>> However, I am wondering if there is actually a valid use case for this? >>> Especially since in the future, with our V2 api’s, they won’t be using >> this >>> hostContext variability, they will always be under /api path. >>> >>> I’d like to rip out the ability to change the hostContext in 10.x (and if >>> folks are up for it, back port to 9x) and establish that it’s always >> /solr >>> for existing paths, and /api for the v2 API. >>> >>> Thoughts? >>> >>> Eric >>> _______________________ >>> Eric Pugh | Founder & CEO | OpenSource Connections, LLC | 434.466.1467 | >>> http://www.opensourceconnections.com < >>> http://www.opensourceconnections.com/> | My Free/Busy < >>> http://tinyurl.com/eric-cal> >>> Co-Author: Apache Solr Enterprise Search Server, 3rd Ed < >>> >> https://www.packtpub.com/big-data-and-business-intelligence/apache-solr-enterprise-search-server-third-edition-raw >>> >>> >>> This e-mail and all contents, including attachments, is considered to be >>> Company Confidential unless explicitly stated otherwise, regardless of >>> whether attachments are marked as such. >>> >>> >> > > > -- > http://www.needhamsoftware.com (work) > http://www.the111shift.com (play) _______________________ Eric Pugh | Founder & CEO | OpenSource Connections, LLC | 434.466.1467 | http://www.opensourceconnections.com <http://www.opensourceconnections.com/> | My Free/Busy <http://tinyurl.com/eric-cal> Co-Author: Apache Solr Enterprise Search Server, 3rd Ed <https://www.packtpub.com/big-data-and-business-intelligence/apache-solr-enterprise-search-server-third-edition-raw> This e-mail and all contents, including attachments, is considered to be Company Confidential unless explicitly stated otherwise, regardless of whether attachments are marked as such.