You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Max Metral <ma...@artsalliancelabs.com> on 2007/05/04 20:46:58 UTC

Help with Ajax-based prefix query?

Hi.  I'm trying to design a proper index and query mechanism for looking up a business listing using an Ajax-style autocompleting text box.  While I have gotten "versions" to work, I'm wondering what the optimal approach is. 

 

Someone may be looking for "Appleton Café."  That listing might be under "Appleton Café and Bakery", or "Appleton Bakery Café" etc etc.  When they type "apple" I want to match it (easy), and when they type "Appleton ca" I want to match it also.  I'm taking a simple attempt now, which is just a PrefixQuery.  Problem is I seem to need to Store it, Tokenize it (KeywordAnalyzer), and store the Term Vector just to get the PrefixQuery to work.  Is this true?  Since I already have the "title" field stored using a Snowball analyzer in another field, I want the minimum bits required to make the PrefixQuery work to be stored in the index.

 

Thanks very much for any pointers,

--Max


Re: Help with Ajax-based prefix query?

Posted by Mark Miller <ma...@gmail.com>.
If I where going to do this I would create special autocomplete index. I
would add each name that I wanted to be able to autocomplete on to this
index. You can tokenize if you want (the lowercase filter) but do not use
something that will split up words...you want "Appleton Bakery Café" to go
in as a single token. If you find a term already in the index, you can
reindex it with a higher boost to affect ordering in the suggestions. You
certainly do want to store (to retrieve the suggestions using the prefix
query), you don't need Term Vectors, and I see no reason to use the
KeywordAnalyzer (you want apple to match Apple).

- Mark

On 5/4/07, Max Metral <ma...@artsalliancelabs.com> wrote:
>
> Hi.  I'm trying to design a proper index and query mechanism for looking
> up a business listing using an Ajax-style autocompleting text box.  While I
> have gotten "versions" to work, I'm wondering what the optimal approach is.
>
>
>
> Someone may be looking for "Appleton Café."  That listing might be under
> "Appleton Café and Bakery", or "Appleton Bakery Café" etc etc.  When they
> type "apple" I want to match it (easy), and when they type "Appleton ca" I
> want to match it also.  I'm taking a simple attempt now, which is just a
> PrefixQuery.  Problem is I seem to need to Store it, Tokenize it
> (KeywordAnalyzer), and store the Term Vector just to get the PrefixQuery to
> work.  Is this true?  Since I already have the "title" field stored using a
> Snowball analyzer in another field, I want the minimum bits required to make
> the PrefixQuery work to be stored in the index.
>
>
>
> Thanks very much for any pointers,
>
> --Max
>
>