There are at least three ways to limit the search results within a group or a team using the keyword query language (KQL). These are cases where the managed property used exists on all items for the site/group.
Path
If you know the URL of the groups site you can use a path filter, and remember the trailing slash (/) to avoid edge case inclusion of other data.
path:https://contoso.sharepoint.com/teams/myteam/
Site Id
If you know the underlying site id of the Groups site.
SiteID:<guid>
Group Id
If you know the Group Id, meaning the AAD id of the group, you can use this as well.
GroupId:<guid>
Bonus: Search within all the groups a user is member of
And here’s the kicker to effectively scope results to all the groups a user is member of. Say you have pulled out a list of all the groups a user is member of via the Microsoft Graph API:
https://graph.microsoft.com/v1.0/me/memberOf/$/microsoft.graph.group
?$filter=groupTypes/any(a:a eq 'unified')
Armed with all the group ids, you can issue a SharePoint Search REST query using a wildcard (*) as the query text and the following FQL in the refinementfilters property.
GroupId:or(<guid1>,<guid2>,….)
GroupId:or(81eb706e-2904-4ac6-89f4-a0cf9d59d1c4,79958190-024b-4c62-ab55-65dc9a066cac)
If you are a member of many groups, then I suggest using a POST payload instead of GET, and refinementfilters is not limited by 4k either (at the time of this writing) :)
See https://www.techmikael.com/2013/07/limiting-search-results-by-exact-time.html for an explanation of refinement filter usage.
Note: How the above syntax will work using the Microsoft Graph Search API which is in beta, is not known at this point.
Photo by Mike Szczepanski @Unsplash