lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ian Lea <ian....@gmail.com>
Subject Re: IndexSearcher.doc thread safe problem
Date Wed, 09 Jul 2014 17:04:10 GMT
It's more likely to be a demonstration that concurrent programming is
hard, results often hard to predict and debugging very hard.

Or perhaps you simply need to add acceptsDocsOutOfOrder() to your
collector, returning false.

Either way, hard to see any evidence of a thread-safety problem in lucene.

If adding acceptsDocsOutOfOrder() doesn't fix it, I suggest you verify
that your queue is getting the values you expect, in the order you
expect, consistently.  Then worry about the display part, first
checking everything without any lucene calls.


--
Ian.

On Wed, Jul 9, 2014 at 5:59 AM, 김선무 <guksunm@gmail.com> wrote:
> Hi all,
>
> I know IndexSearcher is thread safe.
> But IndexSearcher.doc is not thread safe maybe...
>
> I try to below
> --------------------------------------------
> First, I extract docID at index directory. And that docID add on
> queue(ConcurrentLinkedQueue)
>
> Second, extract field value using docID poll at this queue after extract
> process end. This process is  work to multi-threads.
>
> For this I used the following summation code below:
> searcher.search( query, filter, new Collector() { public void collect( int
> doc ) { queue.add( docBase + doc ) } );
> Thread thread1 = new Thread( () -> { while( !queue.isEmpty() ) {
> System.out.println( searcher.doc(queue.poll()).get("content") ); } } );
> Thread thread2 = new Thread( thread1 );
> thread1.start();
> thread2.start();
> -------------------------------------------
>
> Result was different in every execution.
>
> My method is wrong? or IndexSearcher bug?
>
> Please help me

---------------------------------------------------------------------
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