lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject Re: How to perform a phrase "begins with" query?
Date Thu, 17 Sep 2009 17:13:02 GMT
> Since you can't (and it doesn't make sense to) use
> wildcards in phrase
> queries, how do you construct a query to get results for
> phrases that begin with a certain set of terms?  
> Here are some theoretical examples...
> Example 1 - I have an index where each document contains
> the contents of
> short stories.  I want to return each document that
> begins with the
> words "Once upon a time".  I know this in not valid
> Lucene syntax, but
> what I would like to do is query for "Once upon a time"*

You are trying to retrieve documents begins with "Once upon a time", right? You want your
phrase in the beginning of the document. You can retrieve them using SpanQuery family programmatically.

I am not sure about the value of (int end) in SpanFirstQuery constructor but it will be something
like that:

s1 = new SpanTermQuery(new Term("story","once"));
s2 = new SpanTermQuery(new Term("story","upon"));
s3 = new SpanTermQuery(new Term("story","time"));

s4 = new SpanNearQuery([s1,s2,s3], 0, true);

s5 = new SpanFirstQuery(s4, 3);

Note that you need to use analyzed text of terms in this approach.

Hope this helps.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message