lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yonik Seeley <yo...@lucidimagination.com>
Subject Re: known problem? - firstSearcher event of SpellChecker is never called
Date Sat, 12 Mar 2011 15:35:58 GMT
Hmmm, this does look like a problem.
In general, a searcher is opened first, and then inform() is called on
components.
Perhaps this should be reversed and inform() should be called first?

To make that happen, we'd need to document that inform() should not
try to get a searcher,
and I think some components may currently do that (like elevation component?)

-Yonik
http://lucidimagination.com

2011/3/12 Koji Sekiguchi <koji@r.email.ne.jp>:
> Hello,
>
> I'd like to know if it is a known problem before opening a jira issue,
> because I've never used SpellChecker so far and it is not in my line.
>
> firstSearcher event of SpellChecker is never called when there is no
> <listener event="firstSearcher"/> registered in solrconfig.xml.
>
> The reason is because the sequence of procedures in SolrCore constructor:
>
> 1. initListeners();
> 2. getSearcher(false,false,null);
>   => register (general) firstSearcher listener if it exists
> 3. call SolrCoreAware.inform();
>   => register SpellChecker's firstSearcher listener
>
> After that, Callable.call() is called to execute the firstSearcher event:
>
> if (currSearcher==null && firstSearcherListeners.size() > 0) {
>  future = searcherExecutor.submit(
>          new Callable() {
>            public Object call() throws Exception {
>              try {
>                for (SolrEventListener listener : firstSearcherListeners) {
>                  listener.newSearcher(newSearcher,null);
>                }
>              } catch (Throwable e) {
>                SolrException.logOnce(log,null,e);
>              }
>              return null;
>            }
>          }
>  );
> }
>
> At the time, firstSearcherListeners includes SpellChecker's firstSearcherListner,
> registered by procedure 3 above. But if you have no <listener event="firstSearcher"/>
> registered in solrconfig.xml, at the procedure 2, searcherExecutor.submit()
> is never called because firstSearcherListeners.size() is zero at the moment.
>
> Koji
> --
> http://www.rondhuit.com/en/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
> For additional commands, e-mail: dev-help@lucene.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message