One way is to read TermDocs for each candidate term and see if they are in your 
filter - but that sounds like a lot of disk IO to me when responding to 
individual user keystrokes.
You can use "skip" to avoid reading all term docs when you know what is in the 
filter but it all seems a bit costly.

It's hard to optimise in advance for this, especially if the filter is an 
arbitrary choice of documents for each user.



----- Original Message ----
From: AdrianPillinger <[EMAIL PROTECTED]>
To: java-dev@lucene.apache.org
Sent: Wednesday, 3 September, 2008 16:54:11
Subject: Can I filter the results returned by IndexReader.terms(term)?


I am using IndexReader.terms(term) to produce term suggestions to my users as
they type. In many cases the user is searching lucene with a filter applied,
for example a date range. 

Is there any way I can get a list of terms in the index that are contained
within a subset of the documents by a given filter.

i.e. I'd like to do something like....

...
IndexReader reader = readerProvider.openReader(directoryProvider);
reader.filterDocument(filter);
TermEnum termEnum = reader.terms(new Term("name", "<user entered term>"));
...Iterate on terms
....


I've scouted all over the API and I cannot find how to do this or if it is
possible.

Please let me know if it can be done and if so how.

Thanks!


-- 
View this message in context: 
http://www.nabble.com/Can-I-filter-the-results-returned-by-IndexReader.terms%28term%29--tp19292207p19292207.html
Sent from the Lucene - Java Developer mailing list archive at Nabble.com.


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


    

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

Reply via email to