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 Mohammad Norouzi <mn...@gmail.com> on 2007/05/26 16:20:25 UTC
how to exact search?
Hi All
I want to search an exact phrase, for example field1:"This is a Text"
or by this query: field1:"Test" returns the result that only contain the
word "Test" and not "Test one" or "Test two"
I have a page that build a query and finally send that query to a
MultiFieldQueryParser
I have a class extends from MultiFieldQueryParser and override getRangeQuery
to managing my range queries but there is something I cant understand when
the query is field1:Test getFieldQuery() method will be called but when the
query is field1:"Test" (with double quotes) neither of methods will be
called!!!
what happen when I use ( " ) in the query? and how can I catch it to use a
PhraseQuery to exact search?
Thank you very much
--
Regards,
Mohammad
--------------------------
see my blog: http://brainable.blogspot.com/
Re: how to exact search?
Posted by Erick Erickson <er...@gmail.com>.
Because "Test" is a phrase of exactly one word, so it matches both.
Assuming you indexed it with StandardAnalyzer, you indexed
tokens test, one, two. test got indexed for both docs. To the phrase
"test" matches both documents.
Your question is ambiguous. If you're asking how to return only
exact matches on the entire field, you'll have to index things
UN_TOKENIZED, then I'd use phrase queries to search. But you
won't then be able to get partial matches.
Best
Erick
On 5/26/07, Mohammad Norouzi <mn...@gmail.com> wrote:
>
> So why the field1:"Test" returns results with
> "Test one"
> "Test two"
>
> how can I tell lucene to return only "Test"
>
> On 5/26/07, Erick Erickson <er...@gmail.com> wrote:
> >
> > It becomes a phrase query.
> >
> > Erick
> >
> > On 5/26/07, Mohammad Norouzi <mn...@gmail.com> wrote:
> > >
> > > Hi All
> > > I want to search an exact phrase, for example field1:"This is a Text"
> > > or by this query: field1:"Test" returns the result that only contain
> > the
> > > word "Test" and not "Test one" or "Test two"
> > >
> > > I have a page that build a query and finally send that query to a
> > > MultiFieldQueryParser
> > > I have a class extends from MultiFieldQueryParser and override
> > > getRangeQuery
> > > to managing my range queries but there is something I cant understand
> > when
> > > the query is field1:Test getFieldQuery() method will be called but
> when
> > > the
> > > query is field1:"Test" (with double quotes) neither of methods will be
> > > called!!!
> > >
> > > what happen when I use ( " ) in the query? and how can I catch it to
> use
> > a
> > > PhraseQuery to exact search?
> > >
> > >
> > > Thank you very much
> > >
> > >
> > > --
> > > Regards,
> > > Mohammad
> > > --------------------------
> > > see my blog: http://brainable.blogspot.com/
> > >
> >
>
>
>
> --
> Regards,
> Mohammad
> --------------------------
> see my blog: http://brainable.blogspot.com/
>
Re: how to exact search?
Posted by Mohammad Norouzi <mn...@gmail.com>.
So why the field1:"Test" returns results with
"Test one"
"Test two"
how can I tell lucene to return only "Test"
On 5/26/07, Erick Erickson <er...@gmail.com> wrote:
>
> It becomes a phrase query.
>
> Erick
>
> On 5/26/07, Mohammad Norouzi <mn...@gmail.com> wrote:
> >
> > Hi All
> > I want to search an exact phrase, for example field1:"This is a Text"
> > or by this query: field1:"Test" returns the result that only contain
> the
> > word "Test" and not "Test one" or "Test two"
> >
> > I have a page that build a query and finally send that query to a
> > MultiFieldQueryParser
> > I have a class extends from MultiFieldQueryParser and override
> > getRangeQuery
> > to managing my range queries but there is something I cant understand
> when
> > the query is field1:Test getFieldQuery() method will be called but when
> > the
> > query is field1:"Test" (with double quotes) neither of methods will be
> > called!!!
> >
> > what happen when I use ( " ) in the query? and how can I catch it to use
> a
> > PhraseQuery to exact search?
> >
> >
> > Thank you very much
> >
> >
> > --
> > Regards,
> > Mohammad
> > --------------------------
> > see my blog: http://brainable.blogspot.com/
> >
>
--
Regards,
Mohammad
--------------------------
see my blog: http://brainable.blogspot.com/
Re: how to exact search?
Posted by Erick Erickson <er...@gmail.com>.
It becomes a phrase query.
Erick
On 5/26/07, Mohammad Norouzi <mn...@gmail.com> wrote:
>
> Hi All
> I want to search an exact phrase, for example field1:"This is a Text"
> or by this query: field1:"Test" returns the result that only contain the
> word "Test" and not "Test one" or "Test two"
>
> I have a page that build a query and finally send that query to a
> MultiFieldQueryParser
> I have a class extends from MultiFieldQueryParser and override
> getRangeQuery
> to managing my range queries but there is something I cant understand when
> the query is field1:Test getFieldQuery() method will be called but when
> the
> query is field1:"Test" (with double quotes) neither of methods will be
> called!!!
>
> what happen when I use ( " ) in the query? and how can I catch it to use a
> PhraseQuery to exact search?
>
>
> Thank you very much
>
>
> --
> Regards,
> Mohammad
> --------------------------
> see my blog: http://brainable.blogspot.com/
>