2011-01-28 6 views
0

J'ai une configuration Ubuntu avec Luciene, Solr et une application Rails. J'utilise Solr pour indexer et rechercher des données à partir de l'application Rails. Cela fonctionne bien, sauf parfois.Lucene se bloque avec surbrillance

Je reçois ce Execption:

Net::HTTPFatalError (500 "org/apache/lucene/index/memory/MemoryIndex java.lang.NoClassDefFoundError: 
    org/apache/lucene/index/memory/MemoryIndex 
    org.apache.lucene.search.highlight.WeightedSpanTermExtractor.getReaderForField(WeightedSpanTermExtractor.java:361) 
    org.apache.lucene.search.highlight.WeightedSpanTermExtractor.extractWeightedSpanTerms(WeightedSpanTermExtractor.java:282) 
    org.apache.lucene.search.highlight.WeightedSpanTermExtractor.extract(WeightedSpanTermExtractor.java:149) 
    org.apache.lucene.search.highlight.WeightedSpanTermExtractor.getWeightedSpanTerms(WeightedSpanTermExtractor.java:414) 
    org.apache.lucene.search.highlight.QueryScorer.initExtractor(QueryScorer.java:216) 
    org.apache.lucene.search.highlight.QueryScorer.init(QueryScorer.java:184) 
    org.apache.lucene.search.highlight.Highlighter.getBestTextFragments(Highlighter.java:226) 
    org.apache.solr.highlight.DefaultSolrHighlighter.doHighlighting(DefaultSolrHighlighter.java:335) 
    org.apache.solr.handler.component.HighlightComponent.process(HighlightComponent.java:89) 
    org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:195) 
    org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131) 
    org.apache.solr.core.SolrCore.execute(SolrCore.java:1317) 
    org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338) 
    org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241) 
    org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 
    org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
    org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) org.mor"): 
    /usr/local/ruby/1.9.2-rc2/lib/ruby/1.9.1/net/http.rb:2295:in `error!' 

je recherche cela et trouvé que j'ai besoin du Lucene-memory.jar, mais cela est mis en place sur mon serveur:

$ locate lucene-memory 
/usr/share/java/lucene-memory-2.9.2.jar 
/usr/share/java/lucene-memory.jar 

I Je ne sais pas pourquoi?!?

Répondre

3

Essayez de mettre ce pot à:

solr \ VERSION \ lib \

où VERSION pourrait être 1.4.1 ou tout ce que vous avez. La raison de cela est de charger ce pot d'une manière explicite de solr.

+1

Parfait! Un "cd/usr/share/solr/WEB-INF/lib && ln -s ../../../java/lucene-memory.jar." résolu ce problème! Merci! – Fu86

+0

Génial! Je suis content pour toi. – nrph