I think you should just implement your own TermFreqIterator, that wraps/delegates each of the N fields in turn?
But, at suggestion time, do you need per-field suggestions? If so, maybe you should build a separate suggester for each field... Mike McCandless http://blog.mikemccandless.com On Tue, Aug 27, 2013 at 9:19 AM, Goutham Tholpadi <gtholp...@gmail.com> wrote: > Lucene Version : 4.4.0 > > SITUATION : > > I need to suggest terms to the user based on a query prefix typed in a > textbox. The terms suggested should exist in the index that will be > searched. I want to suggest terms from more than one field in the > index. > > I am trying to use > org.apache.lucene.search.suggest.analyzing.AnalyzingSuggester for > this. > > PROBLEM : > > Given the path to the index directory, I proceed as follows. > --------------------------------------------------------------- > IndexReader ireader = DirectoryReader.open(FSDirectory.open(new > File(indexPath))); > List<AtomicReaderContext> readercs = ireader.leaves(); > for (AtomicReaderContext readerc : readercs) { > Fields fields = readerc.reader().fields(); > for (String field : fields) { > TermsEnum termsEnum = fields.terms(field).iterator(null); > tfit = new TermFreqIteratorWrapper(termsEnum); // OVERWRITE! > } > } > AnalyzingSuggester suggr = new AnalyzingSuggester(analyzer); > suggr.build(tfit); > --------------------------------------------------------------- > > In the line marked "OVERWRITE!", I am overwriting the term list from > one field with the term list from the next field. I want to aggregate > term lists obtained from different fields. > > I could not find a way to instantiate TermFreqIterator without a > BytesRefIterator. The only way to get a BytesRefIterator seems to be > in the form of TermsEnum. Neither can be changed (i.e. appended to) > after instantiation. > > How can I aggregate the TermsEnum lists from different fields so that > I can pass them together in one shot to build()? Alternatively, is > there a way to add term lists to the suggester after calling build() > once? > > Thanks! > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > For additional commands, e-mail: java-user-h...@lucene.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org