= Gerrit Code Review - Searching Groups

Group queries only match internal groups. External groups and system
groups are not included in the query result.

== Basic Group Search

Similar to many popular search engines on the web, just enter some
text and let Gerrit figure out the meaning:

[options="header"]
|======================================================
|Description | Examples
|Name        | Foo-Verifiers
|UUID        | 6a1e70e1a88782771a91808c8af9bbb7a9871389
|Description | deprecated
|======================================================

[[search-operators]]
== Search Operators

Operators act as restrictions on the search. As more operators
are added to the same query string, they further restrict the
returned results. Search can also be performed by typing only a text
with no operator, which will match against a variety of fields.

[[description]]
description:'DESCRIPTION'::
+
Matches groups that have a description that contains 'DESCRIPTION'
(case-insensitive).

[[inname]]
inname:'NAMEPART'::
+
Matches groups that have a name part that starts with 'NAMEPART'
(case-insensitive).

[[is]]
[[is-visibletoall]]
is:visibletoall::
+
Matches groups that are in the groups options marked as visible to all
registered users.

[[name]]
name:'NAME'::
+
Matches groups that have the name 'NAME' (case-insensitive).

[[owner]]
owner:'OWNER'::
+
Matches groups that are owned by the group whose name best matches
'OWNER' or that has the UUID 'OWNER'.

[[uuid]]
uuid:'UUID'::
+
Matches groups that have the UUID 'UUID'.

[[member]]
member:'MEMBER'::
+
Matches groups that have the account represented by 'MEMBER' as a member.

[[subgroup]]
subgroup:'SUBGROUP'::
+
Matches groups that have a subgroup whose name best matches 'SUBGROUP' or
whose UUID is 'SUBGROUP'.

== Magical Operators

[[is-visible]]
is:visible::
+
Magical internal flag to prove the current user has access to read
the group. This flag is always added to any query.

[[limit]]
limit:'CNT'::
+
Limit the returned results to no more than 'CNT' records. This is
automatically set to the page size configured in the current user's
preferences. Including it in a web query may lead to unpredictable
results with regards to pagination.

GERRIT
------
Part of link:index.html[Gerrit Code Review]

SEARCHBOX
---------
