I am wrong about the facet search. You are using Sorting, which also
use FieldCacheImpl.

Doesn't seem a way to turn it off though.

-- 
Chris Lu
-------------------------
Instant Scalable Full-Text Search On Any Database/Application
site: http://www.dbsight.net
demo: http://search.dbsight.com
Lucene Database Search in 3 minutes:
http://wiki.dbsight.com/index.php?title=Create_Lucene_Database_Search_in_3_minutes

DBSight customer Twenga got 2.6 Million Euro funding!
http://www.techcrunch.com/2007/12/07/twenga-gets-e26-million-for-product-search/



On Dec 10, 2007 2:42 PM, Bob Daha <[EMAIL PROTECTED]> wrote:
> Interesting... I didn't explicitly turn that on... I'm creating a query using 
> query parser, then executing a search using that query and a sort.  Would 
> this algorithmically somehow invoke the FieldCacheImpl?  If so, anyway I can 
> turn it off?  Basically the caching wouldn't be valuable anyway given the 
> volatility of the index, and I'm not that concerned with speed.  (seeing most 
> queries take well under 20ms)
>
> Here's the searcher thread, if the code would help... note rd is my 
> RAMDirectory object - it is never closed / reopened for the life of the 
> application.
>
>   public tps_search_results searchIndex(String query, String sortColumn, 
> boolean desc) {
>     ArrayList<Long> results = new ArrayList<Long>();
>
>     try {
>
>       if (!readerTPS.isCurrent()) {
>         searcher.close();
>         readerTPS.close();
>         readerTPS = IndexReader.open(rd);
>         searcher  = new IndexSearcher(readerTPS);
>       }
>
>       Query q = parserTPS.parse(query);
>
>       Sort sort = new Sort(sortColumn, desc);
>
>       Hits hits = searcher.search(q, sort);
>
>       for (Iterator<Hit> it = hits.iterator(); it.hasNext(); ) {
>         Hit hit = it.next();
>
>         results.add(Long.parseLong(hit.get("ticket_id")));
>       }
>
>     } catch (Exception e) {
>       rlog.exception(e);
>     }
>
>     rlog.queryComplete(": Results count: " + results.size());
>
>     tps_search_results ret_results = new tps_search_results(results);
>
>     return ret_results;
>   }
>
>
> ----- Original Message ----
> From: Chris Lu <[EMAIL PROTECTED]>
> To: java-user@lucene.apache.org
> Sent: Monday, December 10, 2007 2:17:26 PM
> Subject: Re: Out of memory?
>
>
> Looks like you are using FieldCacheImpl to count search results for
> each category. ( or called facet search by a fancy name ).
>
> Well, it's a cache and the terms are loaded in the memory.
>
> --
> Chris Lu
> -------------------------
> Instant Scalable Full-Text Search On Any Database/Application
> site: http://www.dbsight.net
> demo: http://search.dbsight.com
> Lucene Database Search in 3 minutes:
> http://wiki.dbsight.com/index.php?title=Create_Lucene_Database_Search_in_3_minutes
> DBSight customer Twenga got 2.6 Million Euro funding!
> http://www.techcrunch.com/2007/12/07/twenga-gets-e26-million-for-product-search/
>
>
> On Dec 10, 2007 11:56 AM, Bob Daha <[EMAIL PROTECTED]> wrote:
> > Hello,
> >
> > I'm building a ticketing system for my company and am using Lucene
>  for some of the more complicated queries.  I'd say my application differs
>  from the typical lucene application in that my documents are
>  (re)-indexed more frequently, the query load is actually relatively light, 
> and
>  most of the indexed document data is numerical.  (ticket id, owner id,
>  date ranges, etc are numbers and there's just one giant "text"
>  searchable field.)
> >
> > I just got an out of memory exception on my app.  When I fired up
>  jhat, I was very surprised at the object allocation:
> >
> > 7862 instances of class org.apache.lucene.index.Term
> > 7787 instances of class org.apache.lucene.index.TermInfo
> > 504 instances of class org.apache.lucene.index.FieldInfo
> > 224 instances of class org.apache.lucene.index.TermBuffer
> > 79 instances of class
>  org.apache.lucene.index.CompoundFileReader$CSIndexInput
> > 75 instances of class org.apache.lucene.index.SegmentTermEnum
> > 70 instances of class org.apache.lucene.store.RAMFile
> > 64 instances of class org.apache.lucene.store.RAMInputStream
> > 63 instances of class org.apache.lucene.index.FieldInfos
> > 20 instances of class
>  com.facebook.tps_search_server.tps_search_ticket
> > 20 instances of class
>  com.facebook.tps_search_server.tps_search_ticket$Isset
> > 10 instances of class org.apache.lucene.index.IndexReader$FieldOption
> > 9 instances of class
>  org.apache.lucene.index.IndexFileDeleter$RefCount
> > 8 instances of class
>  org.apache.lucene.index.CompoundFileReader$FileEntry
> > 8 instances of class
>  org.apache.lucene.index.CompoundFileWriter$FileEntry
> > 8 instances of class org.apache.lucene.index.SegmentReader$Norm
> > 7 instances of class org.apache.lucene.document.FieldSelectorResult
> > 5 instances of class org.apache.lucene.document.Field$TermVector
> > 5 instances of class org.apache.lucene.queryParser.Token
> > 4 instances of class org.apache.lucene.document.Field$Index
> > 4 instances of class org.apache.lucene.search.FieldCacheImpl$Entry
> > 3 instances of class com.facebook.thrift.protocol.TBinaryProtocol
> > 3 instances of class com.facebook.thrift.transport.TSocket
> > 3 instances of class org.apache.lucene.document.Field$Store
> > 3 instances of class org.apache.lucene.index.SegmentInfos
> > 3 instances of class org.apache.lucene.search.BooleanClause$Occur
> > 2 instances of class
>  com.facebook.thrift.protocol.TBinaryProtocol$Factory
> > 2 instances of class
>  com.facebook.thrift.server.TThreadPoolServer$WorkerProcess
> > 2 instances of class com.facebook.thrift.transport.TTransportFactory
> > 2 instances of class
>  org.apache.lucene.analysis.standard.StandardAnalyzer
> > 2 instances of class org.apache.lucene.index.SegmentInfo
> > 2 instances of class
>  org.apache.lucene.queryParser.QueryParser$Operator
> > 2 instances of class org.apache.lucene.search.DefaultSimilarity
> > 2 instances of class org.apache.lucene.search.FieldSortedHitQueue$2
> > 2 instances of class org.apache.lucene.search.Sort
> > 2 instances of class org.apache.lucene.search.SortField
> > 2 instances of class org.apache.lucene.store.RAMDirectory
> > 2 instances of class
>  org.apache.lucene.store.SingleInstanceLockFactory
> > 2 instances of class [Lorg.apache.lucene.search.SortField;
> > ...
> >
> > Any ideas on why I'd have so many Term and TermInfo objects?  To give
>  you a little more insight into my application, worker threads can be
>  spawned by client requests that do one of 4 things - search, index
>  tickets, deindex tickets, or reindex tickets.  (reindex a ticket is
>  basically deindex then index ticket)  I'm using a RAMDirectory for all my
>  searches and updates although I have another thread which backs this up to
>  disc periodically.
> >
> > Thanks,
> > B
> >
> >
> >
> >
> >
>  
> ____________________________________________________________________________________
> > Looking for last minute shopping deals?
> > Find them fast with Yahoo! Search.
>   http://tools.search.yahoo.com/newsearch/category.php?category=shopping
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
>
>
>
>       
> ____________________________________________________________________________________
> Never miss a thing.  Make Yahoo your home page.
> http://www.yahoo.com/r/hs

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to