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

Reply via email to