Return-Path: Delivered-To: apmail-jakarta-lucene-user-archive@www.apache.org Received: (qmail 87942 invoked from network); 22 Sep 2004 15:38:13 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 22 Sep 2004 15:38:13 -0000 Received: (qmail 75774 invoked by uid 500); 22 Sep 2004 15:37:58 -0000 Delivered-To: apmail-jakarta-lucene-user-archive@jakarta.apache.org Received: (qmail 75626 invoked by uid 500); 22 Sep 2004 15:37:55 -0000 Mailing-List: contact lucene-user-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Lucene Users List" Reply-To: "Lucene Users List" Delivered-To: mailing list lucene-user@jakarta.apache.org Received: (qmail 75594 invoked by uid 99); 22 Sep 2004 15:37:55 -0000 X-ASF-Spam-Status: No, hits=0.1 required=10.0 tests=DNS_FROM_RFC_ABUSE X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: local policy) Received: from [206.190.39.198] (HELO web53008.mail.yahoo.com) (206.190.39.198) by apache.org (qpsmtpd/0.28) with SMTP; Wed, 22 Sep 2004 08:37:54 -0700 Message-ID: <20040922153750.80116.qmail@web53008.mail.yahoo.com> Received: from [216.231.10.162] by web53008.mail.yahoo.com via HTTP; Wed, 22 Sep 2004 08:37:50 PDT Date: Wed, 22 Sep 2004 08:37:50 -0700 (PDT) From: Edwin Tang Subject: Fwd: Questions related to closing the searcher To: lucene-user@jakarta.apache.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Hello, In my testing, it seems like if the searcher (in my case ParallelMultiSearcher) is not closed, the searcher will not pick up any new data that has been added to the index since it was opened. I'm wondering if this is a correct statement. Assuming the above is true, I went about closing the searcher with searcher.close(), then setting both the searcher and QueryParser to null, then did a System.gc(). The application will sleep for a set period of time, then resumes to process another batch of queries against the index. When the application resumes, the following method is ran: /** * Creates a {@link ParallelMultiSearcher} and {@link QueryParser} if they * do not already exist. * * @return 0 if successful or the objects already exist; -1 if failed. */ private int getSearcher() { Analyzer analyzer; IndexSearcher[] searchers; int iReturn; Vector vector; if (logger.isDebugEnabled()) logger.debug("Entering getSearcher()"); if (searcher == null || parser == null) { analyzer = new CIAnalyzer(utility.sStopWordsFile); try { vector = new Vector(); if (utility.bSearchAMX) vector.add(new IndexSearcher(utility.amxIndexDir)); if (utility.bSearchCOMTEX) vector.add(new IndexSearcher(utility.comtexIndexDir)); if (utility.bSearchDJNW) vector.add(new IndexSearcher(utility.djnwIndexDir)); if (utility.bSearchMoreover) vector.add(new IndexSearcher(utility.moreoverIndexDir)); searchers = (IndexSearcher[]) vector.toArray(new IndexSearcher[vector.size()]); searcher = new ParallelMultiSearcher(searchers); parser = new QueryParser("body", analyzer); iReturn = 0; } catch (IOException ioe) { logger.error("Error creating searcher", ioe); iReturn = -1; } catch (Exception e) { logger.error("Unexpected error while creating searcher", e); iReturn = -1; } } else iReturn = 0; if (logger.isDebugEnabled()) logger.debug("Exitng getSearcher() with " + iReturn); return iReturn; } // End method getSearcher() This seems to get me around the problem where the searcher was not picking up new data from the index. However, I would run out of memory after 8 iterations of the application processing a batch query, sleeping, process another batch query, sleep, etc. I'm probably missing something completely obvious, but I'm just not seeing it. Can someone please tell me what I'm doing wrong? Thanks, Ed __________________________________ Do you Yahoo!? Yahoo! Mail - 50x more storage than other providers! http://promotions.yahoo.com/new_mail --------------------------------------------------------------------- To unsubscribe, e-mail: lucene-user-unsubscribe@jakarta.apache.org For additional commands, e-mail: lucene-user-help@jakarta.apache.org