Return-Path: Delivered-To: apmail-jakarta-lucene-dev-archive@www.apache.org Received: (qmail 56103 invoked from network); 17 Mar 2004 12:36:33 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 17 Mar 2004 12:36:33 -0000 Received: (qmail 62353 invoked by uid 500); 17 Mar 2004 12:36:23 -0000 Delivered-To: apmail-jakarta-lucene-dev-archive@jakarta.apache.org Received: (qmail 62315 invoked by uid 500); 17 Mar 2004 12:36:23 -0000 Mailing-List: contact lucene-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Lucene Developers List" Reply-To: "Lucene Developers List" Delivered-To: mailing list lucene-dev@jakarta.apache.org Received: (qmail 62226 invoked from network); 17 Mar 2004 12:36:22 -0000 Received: from unknown (HELO mwinf0403.wanadoo.fr) (193.252.22.27) by daedalus.apache.org with SMTP; 17 Mar 2004 12:36:22 -0000 Received: from diderot (ABordeaux-202-2-1-154.w80-11.abo.wanadoo.fr [80.11.9.154]) by mwinf0403.wanadoo.fr (SMTP Server) with ESMTP id BD650500028F; Wed, 17 Mar 2004 13:36:21 +0100 (CET) From: "Rasik Pandey" To: "'Lucene Developers List'" , Subject: RE : Query Term Collector (was: Re: New highlighter package available) Date: Wed, 17 Mar 2004 13:36:08 +0100 Message-ID: <001101c40c1c$6f5b79a0$8f7ba8c0@diderot> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook, Build 10.0.2627 In-Reply-To: Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Hello All, I don't know how this Thread/issue was resolved, but if you are still = interested I have a simple way of doing this term collection ONLY at = query time. I've tested it and it works with highlighting, etc. without = the extra rewrite() call on the index. Comments are welcome! package org.apache.lucene.search; import org.apache.lucene.search.Weight; import org.apache.lucene.search.Searcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.Similarity; import org.apache.lucene.index.IndexReader; import java.io.IOException; /*Rasik Pandey rasik.pandey@ajlsm.com*/ /**Simple wrapper for a Lucene query that * collects all queries generated by calling * rewrite on the original Lucene query and stores * them in a BooleanQuery. * * A Searcher will call the rewrite() method * for each index and hence generate a query * containing terms for the respective index. This * class collects these queries so that they may be * used for highlighting, query expansion, etc. by * retrieving the underlying terms. * * @see #rewrite * @see #getRewrittenQueries * @see #resetRewrittenQueries * @see #getOriginalQuery */ public class CachingRewrittenQueryWrapper extends Query{ protected org.apache.lucene.search.Query originalQuery =3D null; protected BooleanQuery rewrittenQueries =3D new BooleanQuery(); public CachingRewrittenQueryWrapper(Query originalQuery) { this.originalQuery =3D originalQuery; } public BooleanQuery getRewrittenQueries() { return this.rewrittenQueries; } public void resetRewrittenQueries() { BooleanQuery newCachedQuery =3D new BooleanQuery(); = newCachedQuery.setMaxClauseCount(this.rewrittenQueries.getMaxClauseCount(= )); this.rewrittenQueries =3D newCachedQuery; } public Query getOriginalQuery() { return this.originalQuery; } public void setBoost(float b) { this.originalQuery.setBoost(b); } public float getBoost() { return this.originalQuery.getBoost(); } protected Weight createWeight(Searcher searcher) { return this.originalQuery.createWeight(searcher); } public Query rewrite(IndexReader reader) throws IOException { Query rewrittenQuery =3D this.originalQuery.rewrite(reader); this.rewrittenQueries.add(rewrittenQuery, false, false); return rewrittenQuery; } public Query combine(Query[] queries) { return this.originalQuery.combine(queries); } public Similarity getSimilarity(Searcher searcher) { return this.originalQuery.getSimilarity(searcher); } protected void finalize() throws Throwable { super.finalize(); //TODO maybe something here to ensure that all resources held by = rewrittenQueries are cleaned up properly } public String toString() { return this.originalQuery.toString(); } public String toString(String field) { return this.originalQuery.toString(field); } } --------------------------------------------------------------------- To unsubscribe, e-mail: lucene-dev-unsubscribe@jakarta.apache.org For additional commands, e-mail: lucene-dev-help@jakarta.apache.org