You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Steve Pruitt <bp...@opentext.com> on 2017/06/30 17:36:29 UTC

RE: [EXTERNAL] - Re: custom search component process method not called

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:erickerickson@gmail.com] 
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 <bp...@opentext.com> 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