lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kai Hu" <kai...@dusee.cn>
Subject 答复: 答复: 答复: About muti-Threads in Lucene
Date Wed, 08 Aug 2007 02:56:53 GMT
Hi,mark
You are right ,using accessor.release(indexwriter) avoid  throwing the indexwriter closed
exception .
Thanks.
kai

-----邮件原件-----
发件人: Mark Miller [mailto:markrmiller@gmail.com] 
发送时间: 2007年8月7日 星期二 19:10
收件人: java-user@lucene.apache.org
主题: Re: 答复: 答复: About muti-Threads in Lucene

You don't close the indexwriter (or readers or searchers) with the
accessor code. You release them, and the accessor code will close them
when appropriate.

- Mark

Kai Hu wrote:
> Hi,Patrick
> 	I tested use a map , get a single LuceneIndexAccessor,and get a cached IndexWriter ,but
after do operation of update,delete,add documents,I should close the IndexWriter to release
the Lock,it will throw Exceptions" this IndexWriter is closed" when other threads execute
 add,update,delete operations.should I synchronized the IndexWriter object? It's better if
you can  send me a demo ,thanks .
>
> kai
>
>   
>> Hi Kai
>>
>> We keep a synchronized map of LuceneIndexAccessor instances, one instance per
>> Directory.  The map is keyed on the directory path.  We then re-use
>> the accessor rather than creating a new one each time.
>>
>> Patrick
>>
>>     
> On 06/08/07, Kai Hu <kai.hu@dusee.cn> wrote:
>   
>> Thanks , Patrick,
>>
>> It is useful. But I found a problem that I use
>>
>> "new LuceneIndexAccessor(accessProvider);" when a request comes in B/S,the LuceneIndexAccessor.getWriter()
will lose its sense,it will new an IndexWriter.
>>
>> public IndexWriter getWriter() throws IOException {
>>
>>        IndexWriter result;
>>
>>        synchronized (this) {//here "synchronized" will lose its sense
>>
>>            checkClosed();
>>
>>            ...
>>
>>        if (cachedWriter != null) {
>>
>>               log.debug("returning cached writer");
>>
>>               result = cachedWriter;
>>
>>               writerUseCount++;
>>
>>            } else {
>>
>>               log.debug("opening new writer and caching it");
>>
>>               result = accessProvider.getWriter();// when new a LuceneIndexAccessor
Object ,it will new an IndexWriter Object
>>
>>               cachedWriter = result;
>>
>>               writerUseCount = 1;
>>
>>            }
>>
>>     }
>>
>> }
>>
>> It will also throw a Exception "cann't obtain the Lock",should I use a single instance
of LuceneIndexAccessor? Suppose I use a single instance of LuceneIndexAccessor,how to set
a different Directory or Analyzer at one time.
>>
>>
>>
>> kai
>>
>>
>> ///////////////////////////////////////////////////////////
>>
>> ///////////////////////////////////////////////////////////
>>
>>
>>
>>     
>>> Hi Kai
>>>       
>>> We use the Lucene Index Accessor contribution:
>>>       
>>> http://www.nabble.com/Fwd%3A-Contribution%3A-LuceneIndexAccessor-t17416.html#a47049
>>>       
>>> Patrick
>>>       
>>
>> On 06/08/07, Kai Hu <kai.hu@dusee.cn> wrote:
>>
>>     
>>> Hi,
>>>       
>>>          How do you solve the problems when add,update,delete documents
>>>       
>>> in muti-threads,use synchronized ?
>>>       
>>
>> ---------------------------------------------------------------------
>>
>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>>
>> For additional commands, e-mail: java-user-help@lucene.apache.org
>>
>>
>>
>>
>>     
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>
>   

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


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


Mime
View raw message