Hi Jonathan,

Thank you for your reply. Your point about my example is a good one. So let
me try to restate using your example. Suppose I want to apply AND to any
search terms within field1.

Then

field1:foo field2:bar field1:baz field2:bom

would by written as

http://localhost:8983/solr/?q=field1:foo OR field2:bar OR field1:baz OR
field2:bom

But if they were written together like:

http://localhost:8983/solr/?q=field1:(foo baz) field2:(bar bom)

I would want it to be

http://localhost:8983/solr/?q=field1:(foo AND baz) OR field2:(bar OR bom)

But it sounds like you are saying that would not be possible.

Thanks,

Brian Lamb

On Tue, Jun 7, 2011 at 11:27 AM, Jonathan Rochkind <rochk...@jhu.edu> wrote:

> Nope, not possible.
>
> I'm not even sure what it would mean semantically. If you had default
> operator "OR" ordinarily, but default operator "AND" just for "field2", then
> what would happen if you entered:
>
> field1:foo field2:bar field1:baz field2:bom
>
> Where the heck would the ANDs and ORs go?  The operators are BETWEEN the
> clauses that specify fields, they don't belong to a field. In general, the
> operators are part of the query as a whole, not any specific field.
>
> In fact, I'd be careful of your example query:
>    q=field1:foo bar field2:baz
>
> I don't think that means what you think it means, I don't think the
> "field1" applies to the "bar" in that case. Although I could be wrong, but
> you definitely want to check it.  You need "field1:foo field1:bar", or set
> the default field for the query to "field1", or use parens (although that
> will change the execution strategy and ranking): q=field1:(foo bar)   ....
>
> At any rate, even if there's a way to specify this so it makes sense, no,
> Solr/lucene doesn't support any such thing.
>
>
>
>
> On 6/7/2011 10:56 AM, Brian Lamb wrote:
>
>> I feel like this should be fairly easy to do but I just don't see anywhere
>> in the documentation on how to do this. Perhaps I am using the wrong
>> search
>> parameters.
>>
>> On Mon, Jun 6, 2011 at 12:19 PM, Brian Lamb
>> <brian.l...@journalexperts.com>wrote:
>>
>>  Hi all,
>>>
>>> Is it possible to change the query parser operator for a specific field
>>> without having to explicitly type it in the search field?
>>>
>>> For example, I'd like to use:
>>>
>>> http://localhost:8983/solr/search/?q=field1:word token field2:parser
>>> syntax
>>>
>>> instead of
>>>
>>> http://localhost:8983/solr/search/?q=field1:word AND token field2:parser
>>> syntax
>>>
>>> But, I only want it to be applied to field1, not field2 and I want the
>>> operator to always be AND unless the user explicitly types in OR.
>>>
>>> Thanks,
>>>
>>> Brian Lamb
>>>
>>>

Reply via email to