Return-Path: Delivered-To: apmail-jakarta-lucene-user-archive@apache.org Received: (qmail 83291 invoked from network); 16 Jul 2002 22:28:40 -0000 Received: from unknown (HELO nagoya.betaversion.org) (192.18.49.131) by daedalus.apache.org with SMTP; 16 Jul 2002 22:28:40 -0000 Received: (qmail 9933 invoked by uid 97); 16 Jul 2002 22:28:58 -0000 Delivered-To: qmlist-jakarta-archive-lucene-user@jakarta.apache.org Received: (qmail 9917 invoked by uid 97); 16 Jul 2002 22:28:57 -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 9901 invoked by uid 98); 16 Jul 2002 22:28:57 -0000 X-Antivirus: nagoya (v4198 created Apr 24 2002) Content-Class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C22D17.3401C62A" Subject: RE: CachedSearcher X-MimeOLE: Produced By Microsoft Exchange V6.0.5762.3 Date: Wed, 17 Jul 2002 00:21:59 +0200 Message-ID: <50EA669584662B498F13A5F24630A0C00204196E@peach.mnet.private> X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: CachedSearcher thread-index: AcIs5+B3fPk5WvRSQU65Rus7LbcbfQALSRKg From: =?iso-8859-2?Q?Hal=E1csy_P=E9ter?= To: "Lucene Users List" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N ------_=_NextPart_001_01C22D17.3401C62A Content-Type: text/plain; charset="iso-8859-2" Content-Transfer-Encoding: quoted-printable > -----Original Message----- > From: Doug Cutting [mailto:cutting@lucene.com] > Sent: Tuesday, July 16, 2002 6:44 PM > To: Lucene Users List > Subject: Re: CachedSearcher >=20 >=20 > Kelvin Tan wrote: > > If the object has a close() method with public modifier,=20 > isn't it a common=20 > > idiom that client code needs to invoke close() explicitly?=20 > If there's no=20 > > real need to call close, maybe it can be changed to protected? >=20 > Yes, that is a common idiom. In the case of Lucene's=20 > FSDirectory, it's still a=20 > good idea to close it when you know its no longer needed, to=20 > minimize the=20 > number of open files, but sometimes it is difficult to know=20 > when it is no=20 > longer needed. Finalizers are intended for precisely this=20 > purpose. But you're=20 > right, probably this should be better documented. >=20 > Doug >=20 > Doug! I made an IndexReaderCache class from the code you have sent (the code = in demo/Search.jhtml). But this causes exception: IndexSearcher searcher =3D new = IndexSearcher(cache.getReader("/data/index")); searcher.close(); searcher =3D new IndexSearcher(cache.getReader("/data/index")); searcher.search(aQuery); when I call the close method the searcher closes the indexreader but the = cache (or your getReader method) returns the closed reader one more time that's why I made a subclass of searcher that can be closed if the user = doesn't want to use it any more you wrote: "sometimes it is difficult to know when it is no longer = needed" I think: "use a cache and you don't have to know when it is no longer = needed!" ;) peter ------_=_NextPart_001_01C22D17.3401C62A Content-Type: application/octet-stream; name="IndexReaderCache.java" Content-Transfer-Encoding: base64 Content-Description: IndexReaderCache.java Content-Disposition: attachment; filename="IndexReaderCache.java" cGFja2FnZSBodS5vcmlnby5sdWNlbmV0b29scy5pYWM7DQppbXBvcnQgamF2YS5pby5JT0V4Y2Vw dGlvbjsNCg0KaW1wb3J0IG9yZy5hcGFjaGUubHVjZW5lLmluZGV4LkluZGV4UmVhZGVyOw0KaW1w b3J0IG9yZy5hcGFjaGUubHVjZW5lLnNlYXJjaC5JbmRleFNlYXJjaGVyOw0KaW1wb3J0IGphdmEu dXRpbC5IYXNodGFibGU7DQovKioNCiAqIEBhdXRob3IgQ29waWVkIGZyb20gZGVtby5qc3AgcGFn ZQ0KICoNCiAqIEtlZXAgYSBjYWNoZSBvZiBvcGVuIEluZGV4UmVhZGVyJ3MsIHNvIHRoYXQgYW4g aW5kZXggZG9lcyBub3QNCiAqIGhhdmUgdG8gb3BlbmVkIGZvciBlYWNoIHF1ZXJ5LiAgVGhlIGNh Y2hlIHJlLW9wZW5zIGFuIGluZGV4IHdoZW4NCiAqIGl0IGhhcyBjaGFuZ2VkIHNvIHRoYXQgYWRk aXRpb25zIGFuZCBkZWxldGlvbnMgYXJlIHZpc2libGUgQVNBUC4NCiAqLw0KcHVibGljIGNsYXNz IEluZGV4UmVhZGVyQ2FjaGUgew0KDQoJDQoNCiAgIHN0YXRpYyBIYXNodGFibGUgaW5kZXhDYWNo ZSA9IG5ldyBIYXNodGFibGUoKTsgIC8vIG5hbWUtPkNhY2hlZEluZGV4DQoNCiAgIGNsYXNzIENh Y2hlZEluZGV4IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYSBjYWNoZSBlbnRyeQ0K ICAgICBJbmRleFJlYWRlciByZWFkZXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8vIGFuIG9wZW4gcmVhZGVyDQogICAgIGxvbmcgbW9kaWZpZWQ7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8vIHJlYWRlcidzIG1vZC4gZGF0ZQ0KDQogICAgIENhY2hlZEluZGV4KFN0 cmluZyBuYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24gew0KICAgICAgIG1vZGlmaWVkID0gSW5kZXhS ZWFkZXIubGFzdE1vZGlmaWVkKG5hbWUpOyAgLy8gZ2V0IG1vZC4gZGF0ZQ0KICAgICAgIHJlYWRl ciA9IEluZGV4UmVhZGVyLm9wZW4obmFtZSk7ICAgICAgICAgICAvLyBvcGVuIHJlYWRlcg0KICAg ICB9DQogICB9DQoNCiAgIHB1YmxpYyBJbmRleFJlYWRlckNhY2hlKCkgew0KICAgfQ0KDQogICBw dWJsaWMgSW5kZXhSZWFkZXIgZ2V0UmVhZGVyKFN0cmluZyBuYW1lKSB0aHJvd3MgSU9FeGNlcHRp b24gew0KICAgICBDYWNoZWRJbmRleCBpbmRleCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8vIGxvb2sgaW4gY2FjaGUNCiAgICAgICAoQ2FjaGVkSW5kZXgpaW5kZXhDYWNoZS5n ZXQobmFtZSk7DQoNCiAgICAgICBpZiAoaW5kZXggIT0gbnVsbCAmJiAgICAgICAgICAgICAgICAg ICAgICAgLy8gY2hlY2sgdXAtdG8tZGF0ZQ0KICAgICAgICAgIChpbmRleC5tb2RpZmllZCA9PSBJ bmRleFJlYWRlci5sYXN0TW9kaWZpZWQobmFtZSkpKQ0KICAgICAgICByZXR1cm4gaW5kZXgucmVh ZGVyOyAgICAgICAgICAgICAgICAgICAgICAvLyBjYWNoZSBoaXQNCiAgICAgICBlbHNlIHsNCiAg ICAgICAJU3lzdGVtLm91dC5wcmludGxuKCJjcmVhdGUgbmV3Iik7DQogICAgICAgIGluZGV4ID0g bmV3IENhY2hlZEluZGV4KG5hbWUpOyAgICAgICAgICAgIC8vIGNhY2hlIG1pc3MNCiAgICAgICB9 DQoNCg0KICAgICBpbmRleENhY2hlLnB1dChuYW1lLCBpbmRleCk7ICAgICAgICAgICAgICAgICAv LyBhZGQgdG8gY2FjaGUNCiAgICAgcmV0dXJuIGluZGV4LnJlYWRlcjsNCiAgIH0NCg0KfQ0K ------_=_NextPart_001_01C22D17.3401C62A Content-Type: text/plain; charset=us-ascii -- To unsubscribe, e-mail: For additional commands, e-mail: ------_=_NextPart_001_01C22D17.3401C62A--