[Freeipa-devel] search fields

Rob Crittenden rcritten at redhat.com
Mon Nov 26 19:54:58 UTC 2007


Karl MacMillan wrote:
> On Mon, 2007-11-26 at 14:14 -0500, Rob Crittenden wrote:
>> David O'Brien wrote:
>>> Pete Rowley wrote:
>>>> David O'Brien wrote:
>>>>> Rob Crittenden wrote:
>>>>>  
>>>>>> I have a memory of talking about this before but can't find the e-mails.
>>>>>>
>>>>>> I'm working on policy configuration now and setting the default search
>>>>>> fields. They are:
>>>>>>
>>>>>> users: uid,givenName,sn,telephoneNumber,ou,title
>>>>>> groups: cn,description
>>>>>>
>>>>>> If you want additional fields speak now :-)
>>>>>>
>>>>>> I seem to recall discussing add carLicense and displayname.
>>>>>>
>>>>>> rob
>>>>>>
>>>>>>     
>>>>> Is it possible to search the same field for multiple values? e.g. I want
>>>>> to search for Bill and Ben, both of whom exist, but I get "No results
>>>>> found for 'Bill Ben'".
>>>>>
>>>>>   
>>>> This should work - looks like a regression.
>>>>
>>> I created ticket #120 for this
>>>
>> I looked into this a bit. It seems that we do an AND match for each 
>> element and not an OR match.
>>
>> So we look for Bill AND Ben and not Bill OR Ben. I think this is to 
>> handle the sample case of "Joe Marketing" to search for Joe in Marketing.
>>
>> I can easily switch this but is it what we want? Should there be a 
>> switch for ALL or ANY in the UI?
>>
> 
> Ideally the results would be all of the AND results followed by all of
> the OR results. Is that possible?
> 
> Karl
> 

A question for a DS guy I think to determine performance impact, if any. 
I think it would be very mild since all of these attributes are indexed.

Currently a search for "Bill Ben" looks like:

filter="(&(objectClass=person)(&(|(uid=Bill)(givenName=Bill)(sn=Bill)
(telephoneNumber=Bill)(ou=Bill)(title=Bill))(|(uid=Ben)(givenName=Ben)
(sn=Ben)(telephoneNumber=Ben)(ou=Ben)(title=Ben))))"

plus

filter="(&(objectClass=person)(&(|(uid=*Bill*)(givenName=*Bill*)
(sn=*Bill*)(telephoneNumber=*Bill*)(ou=*Bill*)(title=*Bill*))
(|(uid=*Ben*)(givenName=*Ben*)(sn=*Ben*)(telephoneNumber=*Ben*)
(ou=*Ben*)(title=*Ben*))))"

So complete matches first, then partial matches.

To do an AND as well where would we put the results? All exact matches 
first follow by all partials?

rob
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3245 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://listman.redhat.com/archives/freeipa-devel/attachments/20071126/717d4b42/attachment.bin>


More information about the Freeipa-devel mailing list