Yes, "+" is what I missed! Thanks.
Suppose there is a book published by 3 publishers (I
don't know how that works in real world):
// At index time:
doc.add( Field.Keyword("publisher", "Manning") );
doc.add( Field.Keyword("publisher", "SAMS") );
doc.add( Field.Keyword("publisher", "O'Reilly") );
// At search time:
queryString += " +publisher:SAMS";
...
should find me that Document.
--- Chris Hostetter <[EMAIL PROTECTED]> wrote:
> : I wonder if that's the same as
> :
> : queryString + " publisher:Manning"
> :
> : and pass on to the query parser?
>
> assuming queryString is a java variable containing
> your initial query,
> then you are close, but not quite. If you want to
> tell QueryParser to
> make a clause "required" then you have to prefice it
> with a "+".
>
> something like...
>
> String userQueryString = ...;
> String queryString = userQueryString + "
> +publisher:Manning";
>
> ...is probably what you want.
>
> Alternately, instead of giving QueryParser a string
> you have built up
> from little pieces, I would recommend that you let
> QueryParser build a
> Query just off of the user input, and then either:
>
> a) Filter that query at search time (take a look
> at the Filter class and
> it's subclasses)
> b) Modify the Query object returned by the
> QueryParser -- either adding
> a mandatory clause to it if it's a
> BooleanQuery, or wrapping it in a
> new BooleanQuery that already contains your
> required clause.
>
>
> -Hoss
>
>
>
---------------------------------------------------------------------
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
>
>
__________________________________
Yahoo! Mail - PC Magazine Editors' Choice 2005
http://mail.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]