You didn't tell us until now that you were running an old version of lucene. Read the 3.5.0 javadocs for SearcherManager: "warmer - An optional SearcherWarmer. Pass null if you don't require ...".
Or upgrade. -- Ian. On Fri, Jan 25, 2013 at 5:18 PM, zhoucheng2008 <[email protected]> wrote: > SearcherManager sm = new SearcherManager(dir, new SearcherFactory()); > > > new SearchFactory() is not recognized in my lucene. asked to change to > SearcherWarmer. Why? > > > I have 3.5 > > > > > ------------------ 原始邮件 ------------------ > 发件人: "Michael McCandless"<[email protected]>; > 发送时间: 2013年1月26日(星期六) 凌晨0:35 > 收件人: "java-user"<[email protected]>; > > 主题: Re: 回复: 回复: 回复: 回复: IndexReader.open and CorruptIndexException > > > > That should work. > > Mike McCandless > > http://blog.mikemccandless.com > > > On Fri, Jan 25, 2013 at 11:27 AM, zhoucheng2008 <[email protected]> > wrote: >> Sorry, I meant this: >> >> >> SearcherManager sm = new SearcherManager(dir, new SearcherFactory()); >> >> >> >> >> ------------------ 原始邮件 ------------------ >> 发件人: "Ian Lea"<[email protected]>; >> 发送时间: 2013年1月26日(星期六) 凌晨0:16 >> 收件人: "java-user"<[email protected]>; >> >> 主题: Re: 回复: 回复: 回复: IndexReader.open and CorruptIndexException >> >> >> >>> Is SearcherFactory the same as SearcherManager? >> >> No. >> >>> Ian mentioned a new warmer() solution. Maybe I can try that first. >> >> Really? Don't remember that. >> >> >> -- >> Ian. >> >>> ------------------ 原始邮件 ------------------ >>> 发件人: "Michael McCandless"<[email protected]>; >>> 发送时间: 2013年1月26日(星期六) 凌晨0:10 >>> 收件人: "java-user"<[email protected]>; >>> >>> 主题: Re: 回复: 回复: IndexReader.open and CorruptIndexException >>> >>> >>> >>> You can pass null for the SearcherFactory ... then SearcherManager >>> will just do new IndexSearcher(reader) for you. >>> >>> Mike McCandless >>> >>> http://blog.mikemccandless.com >>> >>> On Fri, Jan 25, 2013 at 9:30 AM, zhoucheng2008 <[email protected]> >>> wrote: >>>> SearcherManager mgr = new SearcherManager(dir, new MySearchWarmer());Can I >>>> put null as the second parameter in the SearcherManager constructor?If >>>> not, how to create a MySearchWarmer instance? The following explanation >>>> doesn't provide sufficient info: >>>> class MySearchWarmer implements SearchWarmer { @Override public >>>> void warm(IndexSearcher searcher) throws IOException { // Run some >>>> diverse searches, searching and sorting against all // fields that >>>> are used by your application } } >>>> >>>> >>>> >>>> >>>> >>>> >>>> ------------------ 原始邮件 ------------------ >>>> 发件人: "Michael McCandless"<[email protected]>; >>>> 发送时间: 2013年1月25日(星期五) 晚上9:26 >>>> 收件人: "java-user"<[email protected]>; >>>> >>>> 主题: Re: 回复: IndexReader.open and CorruptIndexException >>>> >>>> >>>> >>>> Maybe here?: >>>> >>>> >>>> http://blog.mikemccandless.com/2011/11/near-real-time-readers-with-lucenes.html >>>> >>>> Mike McCandless >>>> >>>> http://blog.mikemccandless.com >>>> >>>> On Fri, Jan 25, 2013 at 7:58 AM, Cheng <[email protected]> wrote: >>>>> Any example code for this SearcherManager? >>>>> >>>>> On Fri, Jan 25, 2013 at 3:59 AM, Ian Lea <[email protected]> wrote: >>>>> >>>>>> There will be one file handle for every currently open file. >>>>>> >>>>>> Use SearcherManager and this problem should go away. >>>>>> >>>>>> >>>>>> -- >>>>>> Ian. >>>>>> >>>>>> >>>>>> On Thu, Jan 24, 2013 at 6:40 PM, zhoucheng2008 <[email protected]> >>>>>> wrote: >>>>>> > What file handlers did you guy refer to? >>>>>> > >>>>>> > >>>>>> > I opened the index directory only. Is this the file handler? Also, how >>>>>> to safely and effectively close the index directory? >>>>>> > >>>>>> > >>>>>> > I found the link's explanation somewhat self-contradictory. After I >>>>>> > read >>>>>> it, I am confused if I should close the file handlers in the finally >>>>>> block >>>>>> or not. I am using Java. >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > ------------------ 原始邮件 ------------------ >>>>>> > 发件人: "Ian Lea"<[email protected]>; >>>>>> > 发送时间: 2013年1月24日(星期四) 下午5:46 >>>>>> > 收件人: "java-user"<[email protected]>; >>>>>> > >>>>>> > 主题: Re: IndexReader.open and CorruptIndexException >>>>>> > >>>>>> > >>>>>> > >>>>>> > Well, raising the limits is one option but there may be better ones.. >>>>>> > >>>>>> > There's an FAQ entry on this: >>>>>> > >>>>>> http://wiki.apache.org/lucene-java/LuceneFAQ#Why_am_I_getting_an_IOException_that_says_.22Too_many_open_files.22.3F >>>>>> > >>>>>> > Take a look at org.apache.lucene.search.SearcherManager "Utility class >>>>>> > to safely share IndexSearcher instances across multiple threads". >>>>>> > >>>>>> > >>>>>> > -- >>>>>> > Ian. >>>>>> > >>>>>> > >>>>>> > On Thu, Jan 24, 2013 at 9:18 AM, Rafał Kuć <[email protected]> wrote: >>>>>> >> Hello! >>>>>> >> >>>>>> >> You need to allow the user that is running Lucene to open more files.. >>>>>> >> There are plenty of tutorials available on the web. Modify your >>>>>> >> /etc/security/limits.conf and if for example your user is lucene add >>>>>> >> the following (or modify if those already exists): >>>>>> >> >>>>>> >> lucene soft nofile 64000 >>>>>> >> lucene hard nofile 64000 >>>>>> >> >>>>>> >> Relog and run: >>>>>> >> >>>>>> >> sudo -u lucene -s "ulimit -Sn" >>>>>> >> >>>>>> >> To see if the limits are the ones you set. If they are not, check if >>>>>> >> you don't have pam_limits.so commented in the /etc/pam.d/ >>>>>> >> >>>>>> >> -- >>>>>> >> Regards, >>>>>> >> Rafał Kuć >>>>>> >> Sematext :: http://sematext.com/ :: Solr - Lucene - Nutch >>>>>> >> >>>>>> >>> Here is the log: >>>>>> >> >>>>>> >>> Jan 24, 2013 4:10:33 AM >>>>>> >>> org.apache.tomcat.util.net.AprEndpoint$Acceptor run >>>>>> >>> SEVERE: Socket accept failed >>>>>> >>> org.apache.tomcat.jni.Error: 24: Too many open files >>>>>> >>> at org.apache.tomcat.jni.Socket.accept(Native Method) >>>>>> >>> at >>>>>> >>> >>>>>> org.apache.tomcat.util.net.AprEndpoint$Acceptor.run(AprEndpoint.java:990) >>>>>> >>> at java.lang.Thread.run(Thread.java:722) >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> >>> Too many open files... How to solve it? >>>>>> >> >>>>>> >> >>>>>> >>> On Tue, Jan 22, 2013 at 10:52 PM, Michael McCandless < >>>>>> >>> [email protected]> wrote: >>>>>> >> >>>>>> >>>> Can you post the full stack trace of the CorruptIndexException? >>>>>> >>>> >>>>>> >>>> Mike McCandless >>>>>> >>>> >>>>>> >>>> http://blog.mikemccandless.com >>>>>> >>>> >>>>>> >>>> On Tue, Jan 22, 2013 at 8:20 AM, Cheng <[email protected]> >>>>>> wrote: >>>>>> >>>> > Hi, >>>>>> >>>> > >>>>>> >>>> > I run a Lucene application on Tomcat. The app will try to open a >>>>>> Linux >>>>>> >>>> > directory, and sometime returns CorruptIndexException error. >>>>>> >>>> > >>>>>> >>>> > Shortly after I restart Tomcat (nothing else changes), the app can >>>>>> be run >>>>>> >>>> > on the fly. I am using the following statements to open a >>>>>> >>>> > directory: >>>>>> >>>> > >>>>>> >>>> > >>>>>> >>>> > try { >>>>>> >>>> > searcher = new IndexSearcher(IndexReader.open(new >>>>>> >>>> NIOFSDirectory(new >>>>>> >>>> > File("/home/user/"+ type)))); >>>>>> >>>> > } catch (IOException e) { >>>>>> >>>> > throw new Exception("[" + type + "] Cannot open index >>>>>> folder..."); >>>>>> >>>> > } >>>>>> >>>> > >>>>>> >>>> > I would like to know how to tackle this problem. >>>>>> >>>> > >>>>>> >>>> > Many thanks! >>>>>> >>>> >>>>>> >>>> --------------------------------------------------------------------- >>>>>> >>>> To unsubscribe, e-mail: [email protected] >>>>>> >>>> For additional commands, e-mail: [email protected] >>>>>> >>>> >>>>>> >>>> >>>>>> >> >>>>>> >> >>>>>> >> --------------------------------------------------------------------- >>>>>> >> To unsubscribe, e-mail: [email protected] >>>>>> >> For additional commands, e-mail: [email protected] >>>>>> >> >>>>>> > >>>>>> > --------------------------------------------------------------------- >>>>>> > To unsubscribe, e-mail: [email protected] >>>>>> > For additional commands, e-mail: [email protected] >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: [email protected] >>>>>> For additional commands, e-mail: [email protected] >>>>>> >>>>>> >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: [email protected] >>>> For additional commands, e-mail: [email protected] >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
