Sigh. Best way to find a stupid mistake is post it.
I had this...
<requestHandler name="/select" class="solr.SearchHandler">
<!-- default values for query parameters can be specified, these
will be overridden by parameters in the request
-->
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<arr name="last-components">
<str>saveStateComponent</str>
</arr>
</lst>
</requestHandler>
Instead of this....
<requestHandler name="/select" class="solr.SearchHandler">
<!-- default values for query parameters can be specified, these
will be overridden by parameters in the request
-->
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
</lst>
<arr name="last-components">
<str>saveStateComponent</str>
</arr>
</requestHandler
-----Original Message-----
From: Erick Erickson [mailto:[email protected]]
Sent: Friday, June 30, 2017 1:26 PM
To: solr-user
Subject: [EXTERNAL] - Re: custom search component process method not called
I believe the init bit is called on startup, so that leaves the second part of
your puzzle. I find this a bit suspicious though:
<str name="saveCore">${solr.core.name}</str>
Are you sure this is different for all three cores? My thought is that the
component is being called for all three cores but it's hard to see b/c the name
is the same.
Total guess though.
Erick
On Fri, Jun 30, 2017 at 10:08 AM, Steve Pruitt <[email protected]> wrote:
> I have a custom search component that registered in the last-components list
> for /select. The component does some bookkeeping. I got it working using a
> helloworld core using one of the example datasets.
> I have a few logging statements to monitor the custom processing. I have the
> jar with my components in the default server/solr/lib folder.
> I created two new cores for my real datasets. They are very small, around 60
> documents.
> I duplicated the custom helloworld solrconfig.xml parts in two new core
> solrconfig.xml files.
>
> I executed a /select on one of the new cores and nothing happened. The
> init(...) function in my custom component for all three cores is executed ok.
> But, the process(...) and prepare(...) methods are never executed.
> I retried the helloworld core and it works fine.
>
> I can't determine why it doesn't work for the two new cores, the process
> method that is.
>
> Why does the init method get called, but not the process method. The prepare
> method is not called also.
>
> The /select entry request handler config is:
>
> <requestHandler name="/select" class="solr.SearchHandler">
> <!-- default values for query parameters can be specified, these
> will be overridden by parameters in the request
> -->
> <lst name="defaults">
> <str name="echoParams">explicit</str>
> <int name="rows">10</int>
> </lst>
> <arr name="last-components">
> <str>saveStateComponent</str>
> </arr>
> </requestHandler>
>
> <searchComponent name="saveStateComponent"
> class="mycomponent.SaveStateComponent">
> <str name="savePath">savedState</str>
> <str name="saveHome">${solr.solr.home}</str>
> <str name="saveCore">${solr.core.name}</str>
> </searchComponent>
>
>
> Thanks in advance.
>
> -S
> Steve Pruitt