Thanks Steve.
Steven A Rowe wrote:
Hi Chris,
The PhraseQuery class does no parsing; tokenization is expected to happen before you feed
anything to it. So unless you have an index-time analyzer that outputs terms that look
like "aaa ddd" -- that is, terms with embedded spaces -- then attempting to use
PhraseQuery or any other query type to look for these terms will bring you no joy. (Of
course, this only applies if you are not using a query parser - I believe John's point
about enclosing a phrase query in quotes refers to the action Lucene's QueryParser takes
when it sees input of this sort.)
The way that it worked for you - adding terms one at a time, with no quotes and
no spaces - is the correct usage pattern.
Steve
On 07/15/2008 at 8:20 AM, Chris Bamford wrote:
Hi John
Thanks for your continued interest in my travails!
==I'm not sure I understand. You want a phrase query so they should be
==passed as a phrase in quotes.
Ok... well I must be missing something then :-(
This fails to return any hits for me:
PhraseQuery pq = new PhraseQuery();
pq.add(new Term("body", "aaa ddd"));
while
PhraseQuery pq = new PhraseQuery();
pq.add(new Term("body", "aaa"));
pq.add(new Term("body", "ddd"));
works fine.
I have tried with both Lucene 2.0 and 2.3 jars.
Please advise!
Thanks,
-Chris
BTW thanks for the tip about Luke
John Griffin wrote:
Chris,
-----Original Message-----
From: Chris Bamford [mailto:[EMAIL PROTECTED]
Sent: Thursday, July 10, 2008 9:15 AM
To: java-user@lucene.apache.org
Subject: Re: newbie question (for John Griffin) - fixed
Hi John,
Please ignore my earlier questions on this subject, as I have got to
the bottom of it. I was not passing each word in the phrase as a
separate Term to the query;
==I'm not sure I understand. You want a phrase query so they should be
==passed as a phrase in quotes.
instead I was passing the whole string (doh!).
Thanks.
- Chris
Chris Bamford wrote:
Hi John,
Further to my question below, I did some back-to-basics investigation
of PhraseQueries and found that even basic ones fail for me... I found
the attached code on the Internet (see
http://affy.blogspot.com/2003/04/codebit-examples-for-all-of-l
ucenes.html)
and this fails too... Can you explain why? I would expect the first
test to deliver 2 hits.
I have tried with Lucene 2.0 and 2.3.2 jars and both fail.
Thanks again,
- Chris
Chris Bamford wrote:
Hi John,
Just continuing from an earlier question where I asked you how to
handle strings like "from:fred flintston*" (sorry I have lost the
original email). You advised me to write my own BooleanQuery and add
to it Prefix- / Term- / Phrase- Querys as appropriate. I have done
so, but am having trouble with the result - my PhraseQueries just do
not get any hits at all :-( My code looks for quotes - if it finds
them, it treats the quoted phrase as a PhraseQuery and sets the slop
factor to 0. so, an input of:
subject:"Good Morning"
results in a PhraseQuery (which I add to my BooleanQuery and then
dump with toString()) of:
+subject:"good morning"
... which fails. However, if I break it into 2 TermQuerys, it works
(but that's not what I want).
What am I missing?
Thanks,
- Chris
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
------------------------------------------------------------------------
*Chris Bamford*
Senior Development Engineer <http://www.scalix.com>
------------------------------------------------------------------------
/Email / MSN/ [EMAIL PROTECTED]
/Tel/ +44 (0)1344 381814 /Skype/ c.bamford
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]