Skip to Content.
Sympa Menu

grouper-dev - Re: [grouper-dev] Hello from Duke

Subject: Grouper Developers Forum

List archive

Re: [grouper-dev] Hello from Duke


Chronological Thread 
  • From: "GW Brown, Information Systems and Computing" <>
  • To: "blair christensen." <>,
  • Subject: Re: [grouper-dev] Hello from Duke
  • Date: Wed, 11 Jul 2007 10:30:47 +0100



--On 10 July 2007 12:46 -0500 "blair christensen." <> wrote:

On 7/7/07, GW Brown, Information Systems and Computing
<>
wrote:
> 4. Performing a group search takes about 20-30 seconds even if no
> results are returned.
That is less surprising. Given the number of groups you have any search
is likely to return a large number of results - however, depending on the
context the UI will then try to filter* the list - which may result in no
results.

*By checking if the current Subject has a specific privilege, or one of a
set of privileges.

I think the API is doing a %term% type match which may not be efficient
against a large database

If you do a search which cannot possibly return a result e.g. ZZZZZZZ,
how long does that take?

Gary: What API methods is the UI using for making these group
searches? At least two methods (so far) that I've checked on will
result in full table scans.

The default search is:

GrouperQuery q = GrouperQuery.createQuery(s,new GroupAttributeFilter(attr,query,StemFinder.findByName(s,from)));
Set res = q.getGroups();

where 'attr' would be 'displayName'.

The default search is configurable through media.properties:

# Determines if the name or extension field (or neither) are searched
search.default.search-in-name-or-extension=

# Determines if the display name or display extension (or neither) is searched
search.default.search-in-display-name-or-extension=name

I assume Duke have not changed the defaults.

The advanced search builds queries based on user selections, but uses the various Filters available.

For each search result I do privilege checks. For Manage groups:

protected boolean isValidSearchResult(Group searchResult) throws Exception {
Subject subj = getGrouperSession().getSubject();
return (searchResult.hasAdmin(subj)|| searchResult.hasUpdate(subj));
}

Gary



----------------------
GW Brown, Information Systems and Computing




Archive powered by MHonArc 2.6.16.

Top of Page