Field-specific suggestions is a good idea that I had not thought
about. Thanks Mike, for the answer, and the suggestion! :)

Goutham Tholpadi
https://sites.google.com/site/gtholpadi/


On Tue, Aug 27, 2013 at 9:28 PM, Michael McCandless
<luc...@mikemccandless.com> wrote:
> 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
>

---------------------------------------------------------------------
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