> I¹m trying to do a search over an index with names.
> 
> This is how I currently create a document of the index
> 
> document.add(new Field("id", item.getItemId().toString(),
> Field.Store.YES,
> Field.Index.NOT_ANALYZED_NO_NORMS));
> document.add(new Field("item.name",
> item.getAutoCompleteText(),
> Field.Store.YES, Field.Index.ANALYZED));
> document.add(new Field("item.type",
> item.getAutoCompleteType().name(),
> field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS));
> 
> I wish to try to search by item.name, but only get results
> that start with the term.
> SpanFirstQuery would allow me to do this, however it is not
> a PrefixQuery,
> Meaning
> 
> If I have an item.name "The Best of Elvis" in the index,
> I would find a match if I search for "The" but not if I
> just search
> For "Th".
> What I would basically like to do is some term that looks
> like this:
> spanFirst(item.name:Th*,1)

I think what you are looking for is EdgeNGramTokenFilter [1] combined with 
KeywordTokenizer [2]. This combination is common for auto-complete/suggest 
stuff.

[1]http://lucene.apache.org/java/2_9_0/api/all/org/apache/lucene/analysis/ngram/EdgeNGramTokenFilter.html
 

[2]http://lucene.apache.org/java/2_9_0/api/all/org/apache/lucene/analysis/KeywordTokenizer.html


   

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