You are doing things correctly, thanks for pointing this out. I just changed the initialization process to only add components that are not specified:
http://svn.apache.org/viewvc?view=rev&revision=609717

thanks!
ryan


Brendan Grainger wrote:
Hi,

I'm using a solr nightly build and I have created my own QueryComponent which is just a subclass of the default QueryComponent. FYI, in most cases I just delegate to the superclass, but I also allow a parameter to be used which will cause some custom filtering (which is why I'm doing all this in the first place).

Anyway, it's working great. The only question I have is have I registered QueryComponent incorrectly in solrconfig.xml as I get this exception when I start solr:

Jan 7, 2008 11:41:22 AM org.apache.solr.common.SolrException log
SEVERE: org.apache.solr.common.SolrException: Multiple searchComponent registered to the same name: query ignoring: [EMAIL PROTECTED] at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:153) at org.apache.solr.core.SolrCore.loadSearchComponents(SolrCore.java:504)
        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:333)
at org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:85) at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:99) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)

This is how I've done registered the QueryComponent (with the relevant note from the example solrconfig.xml)

sorlconfig.xml
...
  <!--
Search components are registered to SolrCore and used by Search Handlers

    By default, the following components are avaliable:

<searchComponent name="query" class="org.apache.solr.handler.component.QueryComponent" /> <searchComponent name="facet" class="org.apache.solr.handler.component.FacetComponent" /> <searchComponent name="mlt" class="org.apache.solr.handler.component.MoreLikeThisComponent" /> <searchComponent name="highlight" class="org.apache.solr.handler.component.HighlightComponent" /> <searchComponent name="debug" class="org.apache.solr.handler.component.DebugComponent" />

If you register a searchComponent to one of the standard names, that will be used instead.
  -->

  <!-- Override searching with our own custom implentation -->
<searchComponent name="query" class="com.mybiz.solr.handler.component.MyQueryComponent" />
...


It doesn't cause any other issue or problem, just a bit scary for people looking at the logs. Is this normal or have I incorrectly registered my QueryComponent?

Thanks!




Reply via email to