lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler" <...@thetaphi.de>
Subject RE: To exit the while loop if match is found
Date Fri, 27 Nov 2009 11:00:06 GMT
Another more simplier approach is to use
http://lucene.apache.org/java/3_0_0/api/core/org/apache/lucene/search/Prefix
TermEnum.html

It is a wrapper term enumeration that lists all Terms with the supplied
prefix. You do not need to filter anything manual, just use a while-loop:

IndexReader reader = ...
TermEnum tenum = new PrefixTermEnum(reader, new Term(field, prefix));
do {
	if (tenum.term() == null) break;
	final String termText = tenum.term().text();
	... // do something with the listed term
} while (tenum.next());


About your question: Depending on the used analyzers you may find the terms
in modified form (lowercased, stemmed,...).

Uwe

-----
Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen
http://www.thetaphi.de
eMail: uwe@thetaphi.de

> -----Original Message-----
> From: DHIVYA M [mailto:dhivyakrishnan87@yahoo.com]
> Sent: Thursday, November 26, 2009 10:57 AM
> To: java-user@lucene.apache.org
> Subject: To exit the while loop if match is found
> 
> Thanks for your suggested code sir.
> 
> But it displays only one word.
> 
> Ex:
> if the input is "z"
> 
> actual output must be
> 
> zing
> Zohar
> 
> but am getting zing alone
> 
> --- On Thu, 26/11/09, Uwe Schindler <uwe@thetaphi.de> wrote:
> 
> 
> From: Uwe Schindler <uwe@thetaphi.de>
> Subject: RE: Need help regarding implementation of autosuggest using
> jquery
> To: java-user@lucene.apache.org
> Date: Thursday, 26 November, 2009, 9:49 AM
> 
> 
> You can fix this if you just create the initial term not with "", instead
> with your prefix:
> TermEnum tenum = reader.terms(new Term(field,prefix));
> 
> And inside the while loop just break out,
> 
> if (!termText.startsWith(prefix)) break;
> 
> -----
> Uwe Schindler
> H.-H.-Meier-Allee 63, D-28213 Bremen
> http://www.thetaphi.de
> eMail: uwe@thetaphi.de
> 
> 
> > -----Original Message-----
> > From: DHIVYA M [mailto:dhivyakrishnan87@yahoo.com]
> > Sent: Thursday, November 26, 2009 10:39 AM
> > To: java-user@lucene.apache.org
> > Subject: RE: Need help regarding implementation of autosuggest using
> > jquery
> >
> > Sir,
> >
> > Your suggestion was fantastic.
> >
> > I tried the below mentioned code but it is showing me the entire result
> of
> > indexed words starting from the letter that i give as input.
> > Ex:
> > if i give "fo"
> > am getting all the indexes from the word starting with fo upto words
> > starting with z.
> > i.e. it starts displaying from the word matching the search word and
> ends
> > up with the last word available in the index file.
> >
> > Kindly suggest me a solution for this problem
> >
> > Thanks in advance,
> > Dhivya
> >
> > --- On Wed, 25/11/09, Uwe Schindler <uwe@thetaphi.de> wrote:
> >
> >
> > From: Uwe Schindler <uwe@thetaphi.de>
> > Subject: RE: Need help regarding implementation of autosuggest using
> > jquery
> > To: java-user@lucene.apache.org
> > Date: Wednesday, 25 November, 2009, 9:54 AM
> >
> >
> > Hi Dhivya,
> >
> > you can iterate all terms in the index using a TermEnum, that can be
> > retrieved using IndexReader.terms(Term startTerm).
> >
> > If you are interested in all terms from a specific field, position the
> > TermEnum on the first possible term in this field ("") and iterate until
> > the
> > field name changes. As terms in the TermEnum are first ordered by field
> > name
> > then by term text (in UTF-16 order), the loop would look like this:
> >
> > IndexReader reader = ...
> > String field = ....
> > Field = field.intern(); // important for the while loop
> > TermEnum tenum = reader.terms(new Term(field,""));
> > try {
> >     do {
> >         final Term term = tenum.term();
> >         if (term==null || term.field()!=field) break;
> >         final String termText = term.text();
> >         // do something with the termText
> >     } while (tenum.next());
> > } finally {
> >     tenum.close();
> > }
> >
> >
> > -----
> > Uwe Schindler
> > H.-H.-Meier-Allee 63, D-28213 Bremen
> > http://www.thetaphi.de
> > eMail: uwe@thetaphi.de
> >
> >
> > > -----Original Message-----
> > > From: DHIVYA M [mailto:dhivyakrishnan87@yahoo.com]
> > > Sent: Wednesday, November 25, 2009 8:06 AM
> > > To: java user
> > > Subject: Need help regarding implementation of autosuggest using
> jquery
> > >
> > > Hi all,
> > >
> > > Am using lucene 2.3.2 as a search engine in my e-paper site. So that i
> > > want the user to search the news. I achieved that objective but now am
> > > trying to implement autosuggest so that user can pick a choice from
> the
> > > drop down and no need of typing in the entire sentence or so.
> > >
> > > I have download Jquery for this purpose and am trying to implement it.
> > > The collections of data to refer for the suggestion is given in an
> > > arraylist or jus with in a string.
> > >
> > > But for my application, i need to populate the suggestions with the
> > > indexed words available in the index file created during indexing
> > > operation.
> > >
> > > Can anyone give an idea to read the contents from the index file and
> > make
> > > it available as suggestions? or anyother idea to achieve this
> objective?
> > >
> > > Thanks in advance,
> > > Dhivya
> > >
> > >
> > >       The INTERNET now has a personality. YOURS! See your Yahoo!
> > Homepage.
> > > http://in.yahoo.com/
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> > For additional commands, e-mail: java-user-help@lucene.apache.org
> >
> >
> >
> >
> >       The INTERNET now has a personality. YOURS! See your Yahoo!
> Homepage.
> > http://in.yahoo.com/
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
> 
> 
> 
> 
>       The INTERNET now has a personality. YOURS! See your Yahoo! Homepage.
> http://in.yahoo.com/


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message