If you need to do an inner purely negative clause, it must be OR’d with *:* - 
queries about matching not excluding.  There’s a shortcut in Solr to allow a 
top-level purely negative clause as convenience but when it gets nested it 
needs pairing explicitly.

Those queries below don’t quite do what you’re asking for though.

        Erik



> On Apr 17, 2017, at 7:18 AM, Furkan KAMACI <furkankam...@gmail.com> wrote:
> 
> Btw, what is the difference between
> 
> +name:test +(type:research (*:* -type:[* TO *]))
> 
> and
> 
> +name:test +(type:research -type:[* TO *])
> 
> On Mon, Apr 17, 2017 at 1:33 PM, Furkan KAMACI <furkankam...@gmail.com>
> wrote:
> 
>> Actually, amount of documents which have 'type' field is relatively too
>> small across all documents at index.
>> 
>> On Mon, Apr 17, 2017 at 7:08 AM, Alexandre Rafalovitch <arafa...@gmail.com
>>> wrote:
>> 
>>> What about setting a default value for the field? That is probably
>>> faster than negative search clauses?
>>> 
>>> Regards,
>>>   Alex.
>>> ----
>>> http://www.solr-start.com/ - Resources for Solr users, new and
>>> experienced
>>> 
>>> 
>>> On 16 April 2017 at 23:58, Mikhail Khludnev <m...@apache.org> wrote:
>>>> +name:test +(type:research (*:* -type:[* TO *]))
>>>> 
>>>> On Sun, Apr 16, 2017 at 11:47 PM, Furkan KAMACI <furkankam...@gmail.com
>>>> 
>>>> wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> I have a schema like:
>>>>> 
>>>>> name,
>>>>> department,
>>>>> type
>>>>> 
>>>>> type is an optional field. Some documents don't have that field. Let's
>>>>> assume I have these:
>>>>> 
>>>>> Doc 1:
>>>>> name: test
>>>>> type: research
>>>>> 
>>>>> Doc 2:
>>>>> name: test
>>>>> type: developer
>>>>> 
>>>>> Doc 3:
>>>>> name: test
>>>>> 
>>>>> I want to search name: test and type:research if type field exists
>>> (result
>>>>> will be Doc 1 and Doc 3).
>>>>> 
>>>>> How can I do that?
>>>>> 
>>>>> Kind Regards,
>>>>> Furkan KAMACI
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> --
>>>> Sincerely yours
>>>> Mikhail Khludnev
>>> 
>> 
>> 

Reply via email to